Architecture Notes — System Design &  Software Development

Architecture Notes — System Design &  Software Development

Share this post

Architecture Notes — System Design &  Software Development
Architecture Notes — System Design & Software Development
Monoliths, Service Architecture, and Microservices
Copy link
Facebook
Email
Notes
More
User's avatar
Discover more from Architecture Notes — System Design & Software Development
In your inbox every Sunday! ⚡️
Over 28,000 subscribers
Already have an account? Sign in

Monoliths, Service Architecture, and Microservices

There are many discussions about which level of system granulation is the best. We went from monoliths to microservices and back again.

Mahdi Yusuf's avatar
Mahdi Yusuf
Aug 27, 2022

Share this post

Architecture Notes — System Design &  Software Development
Architecture Notes — System Design & Software Development
Monoliths, Service Architecture, and Microservices
Copy link
Facebook
Email
Notes
More
Share
Granularity of Systems
Monoliths, Service Architecture, and Microservices

There are many discussions about which level of system granulation is the best. We went from monoliths to microservices and back again. Today we will break it down.. a bit.

Granularity of Systems Monolith, SOA and Microservice Architectures
Granularity of Systems Monolith, SOA and Microservice Architectures

The big kahuna, the monolith! Most systems start here, and I would argue most systems should stay here. Monoliths are deployed and developed as a single unit. It contains all the functionality that the application supports, from UI to the database.

Monolith Architecture
Monolith Architecture

Pros:

  • Early on, simpler and faster development

  • Performant

  • Fewer cross-functional concerns, and if there are easier to grok them.


Cons:

  • As complexity and size increase, so does the agility of the said system

  • Larger systems changes become more complex.

Monolith is strong, fast, and for most of you, the right choice. However, as time progresses or the application grows (complexity and team), new strategies might make more sense. Respect the monolith.

Now let's venture in the world of distributed systems where things you could have been certain of are no longer so certain. We wrote something here about distributed fallacies it give it a read.

The lesser known service-orientated architecture (SOAs)is slightly different where systems are composed of fully functional units that are loosely coupled. That often don't cross communicate and use a shared database.

Service Orientated Architecture
Service Orientated Architecture

Pros:

  • Improved service focus and boundaries, resulting in better maintainability and testing.

  • Teams can move faster and in parallel.

Cons:

  • Overall system response time

  • Increased coordination and require larger planning effort upfront.

SOAs are great, and if your system is well defined, and you need to move away from a Monolith for reasons, SOAs are a great fit to increase reliability and speed of development for a growing team.

Microservices the big, little m. Unlike SOAs, Microservices are even more fine-grained with one responsibility and generally with their own data boundary.

Microservice Architecture
Microservice Architecture

Pros:

  • Ease of development and testing of the Microservices.

  • Increased team agility

Cons:

  • Complexity of distributed systems

  • Deployment complexity for multiple systems

  • Operational complexity of the overall system.

    Microservices can be great for the correct problem if you have a growing team and currently evolving application. However, it has shortcomings of increased complexity, and overall tooling and systems need to be in place. It creates a path forward for future growth, but the number of applications currently facing these challenges isn't numerous.

There is always a 'right' way to design each type of service or platform, and as your systems grow, you will always need to change and evolve to solve new problems. Unfortunately, early in your service, you don't know what will be your biggest hit or what might be an unforeseen bottleneck.

Migrations are likely to happen more than once during the life of a system or none at all.


Subscribe to Architecture Notes — System Design & Software Development

By Mahdi Yusuf · Hundreds of paid subscribers
In your inbox every Sunday! ⚡️

Share this post

Architecture Notes — System Design &  Software Development
Architecture Notes — System Design & Software Development
Monoliths, Service Architecture, and Microservices
Copy link
Facebook
Email
Notes
More
Share

Discussion about this post

User's avatar
Redis Explained
A deep technical dive into all things Redis. Covering various Redis topologies, data persistence and process forking.
Aug 11, 2022 • 
Mahdi Yusuf
154

Share this post

Architecture Notes — System Design &  Software Development
Architecture Notes — System Design & Software Development
Redis Explained
Copy link
Facebook
Email
Notes
More
6
Architecture Notes is Now on Substack!
Learn what's changing (and what's not) as we join the Substack Network!
May 21, 2024 • 
Mahdi Yusuf
71

Share this post

Architecture Notes — System Design &  Software Development
Architecture Notes — System Design & Software Development
Architecture Notes is Now on Substack!
Copy link
Facebook
Email
Notes
More
Database Sharding Explained
More features, active users, and data are collected daily. Your database is slowing your application. Many people don't understand database sharding…
Dec 12, 2022 • 
Mahdi Yusuf
73

Share this post

Architecture Notes — System Design &  Software Development
Architecture Notes — System Design & Software Development
Database Sharding Explained
Copy link
Facebook
Email
Notes
More
1

Ready for more?

© 2025 Mahdi Yusuf
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share

Copy link
Facebook
Email
Notes
More

Create your profile

User's avatar

Only paid subscribers can comment on this post

Already a paid subscriber? Sign in

Check your email

For your security, we need to re-authenticate you.

Click the link we sent to , or click here to sign in.