Hi,
Axon has a very nice and sophisticated asynchronous message
distribution mechanism. Unfortunately, if I understand it correctly,
the
message distribution is not transactional. This limits the use of
this
corner-stone feature in a transactional application to statistical
data
gathering and other non-mission critical usages and leaves it to the
application to implement this feature, which is not a trivial task.
Again, if I understand it correctly, the reason for being non-
transactional
is this: Before a particular message rest in peace, in its life-
cycle, it
participates in two separate consecutive transactions; one for
becoming
persistent, and the othrs to be distributed. The trouble is that
in-between these two transactions, the event sits dock on a
memory-based que and therefore not immune of system failures and
other disasters.
I hope I'm wrong about the above analysis, but if my understanding is
correct, is it not possible to make the que persistent and use it as
a
transient transaction-log?
I understand that due to the dynamic event-listener registrations,
etc.
implementing this capability while keeping all the currently
available
features intact may not be trivial.
If that is the case, is it not possible to implement some
less-sophisticated but more reliable event distribution mechanism
in addition to the existing one? (I have some ideas in this regards.)
Best wishes
Esfand