Skip to content

Commit

Permalink
Create Rule “modular-monoliths/rule” (#7808)
Browse files Browse the repository at this point in the history
* Create Rule “modular-monoliths/rule”

* Update rules-to-better-microservices.md

* Update rules-to-better-microservices.md

* Create rules-to-better-modular-monoliths

* Update index.md

* Update rules-to-better-modular-monoliths
  • Loading branch information
tiagov8 authored Jan 20, 2024
1 parent db38004 commit b29e5a8
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 1 deletion.
1 change: 1 addition & 0 deletions categories/software-development/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ index:
- rules-to-better-entity-framework
- rules-to-better-linq
- rules-to-better-microservices
- rules-to-better-modular-monoliths
- rules-to-better-testing
- rules-to-better-pull-requests
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ index:
- microservice-key-components

---
A microservice architecture is an application architecture where an application consists of many loosely-coupled services. The communications between services are kept lightweight, and the API interfaces between them need to be carefully managed. They are designed to allow different teams to work on different parts of the application completely independently.
A microservice architecture is an application architecture where an application consists of many loosely-coupled services. The communications between services are kept lightweight, and the API interfaces between them need to be carefully managed. They are designed to allow different teams to work on different parts of the application completely independently.
11 changes: 11 additions & 0 deletions categories/software-development/rules-to-better-modular-monoliths
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
type: category
title: Rules to Better Modular Monoliths
guid: 0a276369-c337-4374-becb-bd097b86d821
uri: rules-to-better-modular-monoliths
index:
- modular-monoliths

---

A Modular Monolith is an architectural style in software development that emphasizes modularity within a monolithic application structure.
38 changes: 38 additions & 0 deletions rules/modular-monoliths/rule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
type: rule
title: Do you know the Modular Monolithic Architecture?
uri: modular-monoliths
authors:
- title: Adam Cogan
url: https://www.ssw.com.au/people/adam-cogan
- title: Luke Parker
url: https://www.ssw.com.au/people/luke-parker
created: 2024-01-20T02:50:25.269Z
guid: 5213ed1f-8ae5-4631-9b76-e464d4011c17
---
A Modular Monolith is an architectural style in software development that emphasizes modularity within a monolithic application structure.

<!--endintro-->

### Key aspects

1. **Monolithic Architecture** - Traditionally, a monolithic application is a single-tiered software application where different components are combined into a single project. This means all components of the application are interconnected and interdependent

2. **Modularity** - In a Modular Monolith, the application is still a monolith, but it's structured in a way that components or modules within it are highly modular. This modularity refers to dividing the application into distinct modules, each responsible for a specific piece of functionality. Eg. Invoicing
These modules are designed to be loosely coupled, meaning they interact with each other through well-defined interfaces and are largely independent in terms of development and deployment

3. **Use Cases* - It's often used in scenarios where an application is expected to be complex but not so large or varied that it requires a distributed architecture. It's also a good fit for teams transitioning from a monolithic architecture to microservices, as it offers a middle ground

#### ✅ Advantages

- **Simplicity in Deployment**: Since it's a monolith, the deployment is typically simpler than distributed systems like microservices
- **Ease of Development**: Developers can work on separate modules without significantly affecting other parts of the application
- **Performance**: Inter-module communication is often faster and more reliable than inter-service communication in distributed architectures

#### ❌ Challenges

- **Scalability**: While more scalable than a traditional monolith, it may not scale as effectively as microservices

- **Modular Discipline**: Maintaining strict modularity can be challenging as the application grows and evolves

A Modular Monolith offers a balance between the simplicity and coherence of a monolith and the modularity and maintainability of more distributed architectures. It is particularly useful for certain kinds of applications and organizational contexts.

0 comments on commit b29e5a8

Please sign in to comment.