How Temporal differs to Akka and Lagom? Im looking forward on building more microservices but I’m still stuck on which stack to use.
cc @SergeyBykov since you seems to be an expert on Akka!
I see multiple dimensions here. So, it’s not easy to condense the differences into a short summary.
I think the most fundamental difference is that Temporal provides an abstraction of a persistent call stack. Every step of a business process is transparently persisted by the server, so that it can continue its execution after a failure, an unavailability of a dependency it is trying to call, or after a sleep. The server drives execution of workflows to completion, not application code. Actor systems typically employ the fail-fast approach, where instead of retrying after an error, they return such error or fail the actor altogether, and leave the decision to retry to the caller.
While one can implement a bespoke workflow framework on top of actors (by using storage and persistent timers), it’s a lot of work to build a general purpose workflow system that would be powerful enough, have a clean programming model, support all the edge cases, and be polyglot. Temporal provides a mature out-of-the-box implementation that focused on the workflow scenarios from the start, covers all those mainstream and edge cases well, scales horizontally, and has been battle tested by some of the most demanding workloads.
Thank you Sergey for the proper reply