# Architecture

## Monolithic

* When all functionality in a system has to be deployed together, we consider it a monolith.
* Monolithic architecture means all of the code is deployed as a single process.

| Benefits                    | Drawbacks                         |
| --------------------------- | --------------------------------- |
| Visible Business Flow       | Higher Cost of Scaling            |
| Straightforward Monitoring  | Single Point of Failure           |
| Code Reuse                  | Coupling and Lack of Boundaries   |
| Simpler Deployment Pipeline | The Difficulty of New Deployments |

## Microservices

* Microservices architecture enables to develop a single application as a bunch of small services which have their own process and communicate with each other with lightweight mechanisms.&#x20;
* These services can be written in different languages, and they can use different data storage technologies. They can also be managed by different teams.

| Benefits                                            |   |
| --------------------------------------------------- | - |
| Enables Continuous Deployment (Automating Testing,) |   |

{% embed url="https://ninetailed.io/blog/monolithic-vs-microservices/" %}
