It’s much easier to explore concepts around distributed service coordination when we have concrete systems to talk about. For this workshop, we’ll discuss a set of services (in our case they’ll all be implemented with simple AWS Lambda functions) that comprise a very small slice of a very simplified banking system. The workshop will focus on implementing the workflow to handle processing new bank account applications by checking particulars of an applicant’s information and handling cases that require human review.
Our demo system is comprised of a few services with the following responsibilities:
In the picture below, we can see how an orchestration-based approach for our bank account application processing workflow could work.
So this is exactly the design we’ll implement now in this workshop. We’ll use orchestration to manage our bank account processing workflow — the Account Applications service will accept incoming applications and process each application (by collaborating with the Data Checking service and waiting for humans to review flagged applications). Once an application has moved all the way through the workflow and if a decision is made to approve the application, the workflow could end by notifying an Accounts service to open an account for a user.
OK! We’ve covered enough background. It’s time to get hands-on and learn by building.