Microservices

Microservices are a software development technique - a variant of the Service Oriented Architecture (SOA) structural style - that arranges an application as a collection of loosely coupled services

What are microservices?

Microservices - also known as the microservice architecture - is an architectural style that structures an application as a collection of services that are

  • Highly maintainable and testable
  • Loosely coupled
  • Independently deployable
  • Organized around business capabilities
  • Owned by a small team

The microservice architecture enables the rapid, frequent and reliable delivery of large, complex applications. It also enables an organization to evolve its technology stack.

Snippet from Wikipedia: Microservices

In software engineering, a microservice architecture is a variant of the service-oriented architecture structural style. It is an architectural pattern that arranges an application as a collection of loosely coupled, fine-grained services, communicating through lightweight protocols. One of its goals is that teams can develop and deploy their services independently of others. This is achieved by the reduction of several dependencies in the code base, allowing developers to evolve their services with limited restrictions from users, and for additional complexity to be hidden from users. As a consequence, organizations are able to develop software with fast growth and size, as well as use off-the-shelf services more easily. Communication requirements are reduced. These benefits come at a cost to maintaining the decoupling. So, you should use microservice architecture only if your application is too complex to manage as a monolith . Interfaces need to be designed carefully and treated as a public API. One technique that is used is having multiple interfaces on the same service, or multiple versions of the same service, so as to not disrupt existing users of the code.

A microservice is analogous to Bounded Context in Domain Driven Design. Each microservice should have its own architectural characteristics (a.k.a non functional requirements). Architects should avoid defining uniform characteristics for the entire distributed system.

  • kb/microservices.txt
  • Last modified: 2022/08/10 06:33
  • by 127.0.0.1