System Architecture
Styles of Software Architecture their advantages and problems.
Blogs / Online Articles
Videos / Presentations
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
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?