I was looking to understand how Saga Pattern using orchestration works.
In all references that I have found, It seems that each step needs to communicate using a asynchronous communication, like a queue or a event stream hub.
I was thinking if this is really necessary to use asynchronous communication between each step, or could I use a Http synchronous just garanteening that each step is idempotent?
E.g.
I receive a http request that is store in a queue or event stream hub, like Kafka. Then a single consumer, consumes the message and execute a series of synchronous idempotent steps, like a SAGA orchestration mechanism. If one of these steps fail, the message will eventually be reprocessed, so I can compensate a step, if it has failed.