HI All,
I am trying to use Eventsourced to develop a POC to potentially build a Actor based listeners/subscriptions in a traditional J2EE based application.
This is what the framework does today:
1. We have REST based services which invoke Business Services and they invoke DAO Entitities to respond to certain read/write requests of the application.
2. No we have been trying to send certain events that happen inside the Business Services to External Applications.
3. Currently , we have all the JMS dependencies cooked inside the Business services, so any time some event needs to be fed to an external system , we add
a new JMS Queue and add dependencies to the Business service layer after its processing.
4. We really want to use an Event Bus that will help us with coupling the dependency of JMS in the Business Services layer.
5. I have been searching for a lot of ways to Implement it - Guava Event Bus , AXON CQRS Framework and now I am onto Eventsourced.
6.I think that Eventsourced gets me 90% to where I want to be , but I some confusion when it comes to the recovery part of it.
We are trying to achieve persistence of every event that needs to be fed to an external system. First off , The ReliableChannel does the job with my use case.
But here is something that either that I dont follow or unable to get from the Documentation:
1. An event is published to the Processor , the processor then persists it and sends it off to the final destination.
2. If the final destination doesnt receive this message , the processor tries to send it first when the next event comes in.
3. What I really happening is , the processor is replaying all the events that it has received in its life time.
4. Now , the ReplayParams could be of help here was what I thought - Create a replay param with the last successful SequenceNr and use it as a fromSequenceNr - and I will good to go. Is this thought correct ?
5. How will you get the last successful Sequence Nr , How will the published know that when the all that the final destination knows is about the processor?
6. It looks like the there is no API around getting the last generated sequence Number.
7. Since I cannot get the last generated sequence Number , should I use the Snapshot Recovery approach , where a snapshot gets created after every processor.tell method call ?
Below is a very rough diagram with the idea , Can any one please advice ?
Any response to this is deemed as help :)
Thanks,
Sathish.
