Temporal server vs Axon Server


While implementing orchestrated Saga, I used Temporal and it worked as expected. The Axon framework supports both choreography based Saga and orchestration based Saga. I think Temporal saga is orchestration based. The axon server also maintains event store so how temporal server is different from Axon server? Is there a comparison document which I can refer?


Can you provide a page or some document that describes all Axon features that could be the base of such comparison?

I don’t know much about Axon. A quick glance over their documentation revealed that it is based on ideas of event sourcing and CQRS. I believe CQRS/ES architectural patterns solve a different problem than Temporal. Temporal provides a high-level programming model that simplifies writing reliable potentially long-running applications. CQRS/ES is about modeling data as event streams to optimize DB writes and reads. CQRS is by definition is eventually consistent, while Temporal is fully consistent. Temporal internally uses ES, but it is not exposed directly to application developers and can be considered an implementation detail.

I am comparing Saga orchestration using Temporal vs Axon. I noticed that Temporal saga compensation works out of the box with retry but Axon requires a lot of efforts. Also there is no way to replay from the last point when system went down. Some custom logic like preserving token needs to be implemented in Axon. Axon can be used for both Choreography based Saga and Orchestration based Saga but connection retry and saga compensation retry doesn’t work out of the box. Temporal is much better in this case based on my investigation.