Dissecting the Control Service pattern
Up to this point, we have learned how to identify the actors of a system and create boundary services for the end users and external system actors. BFF services produce events as the users perform actions. ESG services bridge events between systems and invoke external actions. We use choreography to synchronize data across the services to create the inbound bulkheads that protect the services from upstream failures.In the early days of a system, it is typical to use choreography to implement the control flows of the system's business processes, but as the system evolves and matures, it becomes beneficial to refactor these control flows into control services. The following diagram depicts the resources that make up a typical control service:
Control services act as mediators between collaborating boundary services. They only consume and produce events; they do not expose a synchronous interface. The job of...