Software Architecture in Golang: Orchestrator Pattern


What is the Orchestrator Pattern?

Adam Bellemare defines it in his book “Building Event-Driven Microservices” as a “pattern where a central Microservice, issues commands to and awaits responses from subordinate worker Microservices”.

Pros of using the Orchestrator Pattern with Golang

■ It’s relatively easy to implement and maintain because all coordination is in one place.

■ Workflow is easier to define because of the nature of centralized orchestration.

Cons of using the Orchestrator Pattern with Golang

■ There’s coupling between the orchestrator and services, any upstream changes require changes in the orchestrator.

■ Single point of failure, because the orchestrator is in charge of the workflow, if it fails everything fails even the if the other services are working correctly.

== Relevant links

■ Building Event-Driven Microservices (affiliate link): https://amzn.to/3zuMWer

■ Example code: https://github.com/MarioCarrion/video…

■ Software Architecture in Go/Golang: https://www.youtube.com/playlist?list…

■ Learning Golang: Concurrency Patterns using errgroup package: https://youtu.be/KGOgEr7tFKE

■ Learning Golang: Context package: Cancellations, Deadlines and Request-scoped values https://youtu.be/mgJMIZsWfB4


There is no ads to display, Please add some