This IAC project builds using the components in the core IAC repo. You are encouraged to read the rationale behind this in detail in order to understand the choices and structures implemented in this project.
In short, modules in that repo are designed to be used as both:
- a backdrop of common structures; and
- a series of homogenous components
Both of these characteristics are intended to result in:
- Predictable behaviours
- Familiarity for engineers
The architecture model in the original project is based around a classic persistent-compute model, with various Load Balancers and Service Instances waiting for requests to process.
This style of structure necessitates a multi-tier network architecture. The core IAC repo provides a ready-built four-tier VPC model and you are encouraged to read the documentation provided with that module to understand its use.
This application has two main component services:
These are discussed in more detail below.
The Buyer UI service consists of:
- An Application Load Balancer in the public subnet, sharing out the incoming requests
- An ECS Service in the web subnet servicing those requests
The Buyer UI is written in NodeJS and uses Express to serve the web requests it receives.
The CAT API consists of:
- An Application Load Balancer in the public subnet, sharing out the incoming requests
- An ECS Service in the application subnet servicing those requests
The CAT API is written in Java and uses Spring as a framework.