I am implementing a business process that performs 6 steps e.g.
- The Service Orchestrator consumes an event from an SNS (or Standard Publish-Subscribe service) Topic
- Using the message consumed from Step 1, The Orchestrator makes an HTTP call to Service A using an HTTP web client like Spring resttemplate. Service A returns a postcode to The Orchestrator
- Then, The Orchestrator makes another HTTP call to Service D with the postcode from Step 2, and Service D returns the user organization
- Then, The Orchestrator makes another HTTP call to Service C with an event name and gets a response with template details
- Then, The Orchestrator makes another HTTP call to Service B with the User ID and gets a response of User GUID
- Then, The Orchestrator makes the final HTTP call to A Task Service with details from Services B, C and D as request parameters.
For steps 1-6 (which are direct HTTP calls using a web client), I would like to use a service orchestration approach using an event-based architecture with pub/sub and queues etc, and using a cloud-first approach. Also, I would be using Amazon-Managed-Workflows-for-Apache-Airflow for workflow orchestration.
My question: Will my event-based design below suffice for a scalable and performant solution to the business problem?
Problem:
AWS Services and Event-based Architect Design