Search code examples
architecturemicroservicessoa

Multiple applications on web server is consider Microservice or SOA


I'm preparing for an interview which will contain architectural questions. While I was studying, I was thinking about my past experiences. In my previous job, we put most of our applications (about 8~10) on a single tomcat instances, since we didn't have to worry about scaling.

All applications were independent from one another, each one had a different schema on the database, so I believe our apps could be consider microservices.

But they were on the same web server, so if it goes down, all applications goes down, which is something what would happen on a SOA architecture. Of course this would happend on a lower level, which might not have anything to do with the architecture of the software itself.

So my question is, having all the applications on a single web server instance is SOA or Microservice? The image below (from here ) makes me more confused.

SOA vs Microservices


Solution

  • Microservices are a design constraint, not a deployment constraint. How the services are deployed is completely independent of how they are designed. They could even be in the same assembly, assuming you had some sort of design that strongly separated them so that they are not interdependent on each other (not recommending this).

    The point is, could you deploy them separately? If not, you have interdependencies, and have violated some principal of microservice design.