systems and software architecture

Global app architecture

33632.png500

5004.png500

Active-Passive means that one region all the instances are 'active', The read/write. The other region is 'passive' and only has Read permissions.

App architecture

Monolith (Monolithic Application): A single, large, and tightly coupled application where all components (user interface, business logic, data access, etc.) are built and deployed as a single, indivisible unit.
microservices isn't really worth it unless you are a massive company with scaling needs.


Web App 3-tier architecture
Typical for web apps
users make a request to a load balancer, requests are forwarded to servers (AWS auto scaling groups ASG) and this servers make requests to the data layer (DBs, in mem DBs Caches..)
23988.png550

Development / Repository Pattern

Monorepos are a source control/repository management strategy that are regaining a lot of popularity, they cut complexity and costs.

Keep in mind that monorepo is not the same thing as monolith architecture.

monorepo is a single version control repository that houses the code for multiple, often independent projects.

Turborepo (by Vercel) is a build system
you can break down a mono repo down into small focused package and you can cache each build. saving a lot of costs in CI compute.