danEtherman
danEtherman

Reputation: 11

Confusion about system architecture

I've read a lot of articles about monolith vs SOA vs microservices, but I'm still a bit confused about their differences.

For example, If I have an application that gathers the data of multiple services within the company via REST, handles them and then sends them to the frontend, is it using SOA architecture or is it still a monolith?

Can a monolith have multiple services as its data sources?

Upvotes: 1

Views: 149

Answers (2)

Peter Csala
Peter Csala

Reputation: 22679

Let's look at the problem from deployment and elasticity perspectives.

Deployment

  • Monolith system can be deployed as a whole. Even if you have made a tiny change inside a submodule the entire system has to be replaced with the new release.
  • In SOA based services you can deploy services (more or less) independently. In some cases you need deployment orchestration due to service dependencies, but generally we are aiming for self-contained services.

Elasticity

  • Monolith system can be scaled up or down as a whole. If one of your submodule is overwhelmed you need to create an entire new instance of your monolith.
  • In SOA based services you can scale up / down services (more or less) independently. Sometimes multiple services have the same sensitivity for increased load. In these scenarios you can launch new instances of a group of services.

Upvotes: 1

idanz
idanz

Reputation: 867

Monolith, as the name implies (mono) - usually refers to an architecture where there is one single component. From the little you described - sounds like there are several services (=components), each one with its own responsibility, so sounds like it's not a monolith.

Regarding microservices vs. SOA - indeed in first glance these 2 approaches sound very similar, but when you look into it, there are a few key differences, mostly in terms of the services' scope - in microservices the services are very granular, each one of them has a single purpose. In contrast, in SOA the granularity of the services can vary.

Of course there are more differences, I'd recommend to read this article in DZone (which I recommend in general for architecture topics).

Upvotes: 0

Related Questions