Skip to content

Instantly share code, notes, and snippets.

@dhana-git
Last active March 28, 2019 10:05
Show Gist options
  • Select an option

  • Save dhana-git/e6f843c74cf21dc97c596c8889c637bc to your computer and use it in GitHub Desktop.

Select an option

Save dhana-git/e6f843c74cf21dc97c596c8889c637bc to your computer and use it in GitHub Desktop.
Microservices Architecture Style (MSA)

Microservices Architecture Style (MSA)

What's an Architecture?

The structure of software components, their inter-relationships, and the principles and guidlines governing their design and evolution over time.

What's an Architecture Style?

The combination of distinctive features in which an architecture is performed or expressed.

What's a Service?

Microservices Architecture Style

Microservices Architecture Style(MSA) is a style of architecture that defines and creates systems through the use of small independent and selfcontained services that align closely with business activities.

An individual microservice is a service that is implemented with a single purpose, that is self-contained, and that is independent of other instances and services. Microservices are the primary architectural building blocks of an MSA.

An MSA will generally contain the following features:

  • Software components are broken down into independent services (this is the fundamental feature of an MSA).
  • Services are independently deployable.
  • Services are mapped to atomic business capabilities.
  • Services are fully decoupled.
  • Scalability and resilience of the application are achieved through the independence of services and multiple parallel instances of services.

Key Defining Characteristics of an MSA

  • Service Independence
  • Single Responsibility
  • Self-Containment
  • Highly Decoupled
  • Highly Resilient
  • Decentralized Data Management
  • Implementation-Agnostic
  • Scalability and Resilience through Parallelism
  • Well-Defined Interface with a Published Contract
  • Allows Independent Governance
  • Single Team End-to-End Ownership
  • Instrumentation to Support Elasticity and Resilience

Other definitions of MSA

  1. Microservice architecture (MSA) is an approach to building software systems that decomposes business domain models into smaller, consistent, bounded-contexts implemented by services. These services are isolated and autonomous yet communicate to provide some piece of business functionality.

  2. MSA 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.
  • The microservice architecture enables the continuous delivery/deployment of large, complex applications. It also enables an organization to evolve its technology stack.
  1. Microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment