Hi Malay,
A Saga in Axon terms is coordinating a 'Complex Business Transaction' between several Aggregates, in doing so potentially spanning a broad time frame, with the necessity of storing state from several events to perform the 'Complex Business Transaction'/make it's decision.
Certain events will instantiate a Saga (through the @StartSaga annotation), some events will update state needed to complete the 'complex business transaction' and some events signal the end of that transaction, thus with a @EndSaga or the SagaLifecycle.end() function.
Thus the added benefit of a Saga is that it coordinates actions between several aggregates over a unspecified span of time, and it stores it's state which it needs to make the right decisions between handling these events.
To be able to handle the right events you're interested in in your Saga instance, you are inclined to use the @SagaEventHandler. This is a hard requirement to be able to point out which field in a given event associates to which specific Saga instance it has to perform work on.
Your assumption is right, you can perform the same logic in a regular Event Handling Component. But in doing so will require you to keep track of every single 'complex business transaction' in transit yourself, and storing it as well as you wont know when new events you're interested in for a given transaction will pass along.
By using the Saga set up in Axon, the framework abstracts the notion of several of such actions, happening at the same time, from you and keeps you focused on the task at hand: correctly setting up the coordination between these components.
As the Saga is thus some form of Object being alive with a notion of time tied to it as well, you're thus also inclined to store the Saga.
That's what the saga_entry is for. That's also what the association values are for - you can regard those as the identifiers of a saga_entry.
I hope I have giving you enough background to work with Sagas in a pleasant manner Malay.
If not, feel free to post more questions.
Do note that at AxonIQ we also provide a
training around the framework. Saga's are covered in plenty a' detail in there as well.
Cheers,
Steven