⬅️Architecture 🔗 YT

1. Layered Architecture

  • separate the components of a system into distinct layers (presentation layer, business layer, persistence layer, database layer…)
  • MVP is an example of that too
  • promotes separation of concerns (so changes in one layer don’t affect another layer)
  • provides abstraction and encapsulation

2. Event-Driven Architecture

  • loosely coupled software components and services
  • components broadcast events when something happens, other components subscribe to the events they are interested in (pub-sub model)
  • highly decoupled
  • example:

3. Micro-Kernel Architecture

  • separates core system functionalities, into small micro kernels (add-ons, plugins)
  • e.g. OS components

4. Microservices Architecture

  • the application is broken down into a collection of small, loosely coupled services
  • e.g. Netflix
  • services can be developed, deployed and scaled independently
  • tradeoff: added complexity in intra-service communication and maintaining data consistency

5. Monolithic Architecture

  • simplifies development and deployment (go-to for startups and smaller applications)
  • on the rise is the modular monolith
  • still single deployable unit but with modular boundaries