Reactive approach

Microservices are meant to coexist on their own. They are not meant to be dependent on each other. A reactive approach tends to solve some of the challenges of an orchestration approach. Instead of having a controlling orchestrator that takes care of the logic for which steps to happen at what stage, a reactive pattern promotes the service knowing the logic to be built in and executed ahead of time. The services know what to react to and how to deal with it ahead of time. The communication mode for services are dumb pipes and they don't have any logic inside them. Being asynchronous in nature, it removes the waiting part of the orchestration process. Services can produce events and keep on processing. Producing and consuming services are decoupled, so the producer doesn't need to know whether the consumer is up or not. There can be multiple patterns in this approach where producers may want to receive an acknowledgment from consumers. The centralized event stream takes care of all these things in a reactive approach.