Choreography

Have each component of the system participate in the decision-making process about the workflow of a business transaction, instead of relying on a central point of control : https://docs.microsoft.com/en-us/azure/architecture/patterns/choreography

  1. Context and problem

    We need to make different small services to work together in order to process a business transaction end-to-end, reducing point-to-point communication between the services.

  2. Solution

    Choreography pattern allows a transaction to be executed in parallel steps and/or in sequences.

    Features : Execution is sequenced by orders and/or events; each step of choreography becomes a consumable command/event; each process is responsible for subscribing to the required topic; coordination is decentralized.

    Choreography pattern with decentralized coordination

  3. Challenges

    a) Recover from a failure when a service fails
    b) Orchestrator becomes a single point of failure
    c) Independent business operations in parallel could bring complexity