Uma arquitetura de microserviço (MSA) é uma estrutura lógica para o projeto de um programa de software envolvendo componentes modulares frouxamente acoplados conhecidos como microserviços.
Um microserviço é um componente discreto do a serviço maior que suporta um objetivo de negócios específico e usa uma interface simples e bem definida para se comunicar com outros microserviços. A modularidade dos microserviços permite a escalabilidade de componentes individuais de uma aplicação separadamente de acordo com os requisitos e minimiza a probabilidade de que uma alteração feita em um elemento do programa crie alterações imprevistas dentro de outros elementos. Microservices podem ser adicionados, removidos, renomeados, reconfigurados, modificados e reorganizados sem afetar uns aos outros ou o programa como um todo.
A abordagem dos microservices contrasta com a arquitetura monolítica, na qual elementos do programa são entrelaçados e interdependentes, exigindo que o programa inteiro seja abordado se algum elemento for alterado.
Veja a apresentação de Martin Fowler sobre microservices na conferência de desenvolvedores do GOTO: