System Architecture

Styles of Software Architecture their advantages and problems.

Blogs / Online Articles

Videos / Presentations

Monolith

Modular Monolith

Modular Monolith

Distributed Systems

It's a computer system implemented as a set of independent components that communicate with each other over some type of network protocol.

Advantages of Distributed Systems

  • Scalability - each component of the system can be independently scaled.

  • Resilience

  • Heterogeneous technology - different tech stack can be used to implement certain components of the system. Here we are able to select the best tool/language for the job without being limited by tech stack of other components.

  • Laws & Security - much easier to make Laws compliant of specific isolated components that the whole system. This allows for components that must be compliant with certain rules, regulations to be enhanced with specific features without impacting rest of the system (components).

  • Productivity - specifying teams to work on certain components.

Disadvantages of Distributed Systems

  • Complexity of Infrastructure - many components with many pipelines that needs to be controlled and deployed.

  • Transaction less -

  • Changes that span across many components makes things harder

  • Making all this secure. Loads of network communication going from one component to another all this needs to be properly secured!

  • Troubleshooting and Debugging not an easy task

  • Running locally with so many different components again not an easy and pleasant thing to do

Microservices

Self-Contained Systems

"The Self-contained System (SCS) approach is an architecture that focuses on a separation of the functionality into many independent systems, making the complete logical system a collaboration of many smaller software systems."

Blogs / Online Articles

Last updated

Was this helpful?