Segundo Martin Fowler, um dos pioneiros na definição do termo microserviços já em seu artigo seminal "Microservices" (2014):
"O estilo arquitetural de microserviços é uma abordagem para desenvolver uma única aplicação como um conjunto de pequenos serviços, cada um rodando em seu próprio processo e se comunicando com mecanismos leves, frequentemente uma API de recursos HTTP. Esses serviços são construídos em torno de capacidades de negócios e são implantáveis de forma independente por mecanismos totalmente automatizados."
De forma semelhante esse outros dois autores, em publicações mais recentes, trazem essas definições :
Sam Newman, autor do livro "Building Microservices" (2015), define:
"Microserviços são pequenos serviços autônomos que trabalham em conjunto. Cada serviço é um pedaço separado de código ou funcionalidade que representa uma capacidade de negócio completa, com uma interface clara e contratos bem definidos. Eles são fundamentalmente sobre projeto de software modular em escala organizacional, permitindo que times trabalhem de forma independente, escolhendo as tecnologias mais apropriadas e escalando conforme necessário."
Chris Richardson, autor de "Microservices Patterns" (2018), apresenta:
"Microserviços são uma arquitetura que estrutura a aplicação como uma coleção de serviços que são: altamente mantíveis e testáveis; fracamente acoplados; independentemente implantáveis; organizados em torno de capacidades de negócios; e de propriedade de uma pequena equipe. É uma abordagem para desenvolvimento de software que se baseia em muitos pequenos serviços, cada um focado em fazer uma coisa bem, operando em seu próprio processo e se comunicando através de mecanismos bem definidos."
Quando falamos em produtos de software sendo construídos em uma arquitetura de microserviços e não como monolítos podemos ver que esses autores convergem muito mais que divergem na mesma opnião:
Martin Fowler enfatiza que um produto de software não apenas pode, mas frequentemente deve ser composto por múltiplos microserviços. Ele argumenta que uma aplicação moderna pode ser entregue como um conjunto de serviços colaborativos, cada um atendendo a uma capacidade específica de negócio. Fowler destaca a importância de que estes serviços possam ser desenvolvidos, implantados e escalados independentemente.
Sam Newman, em "Building Microservices", apresenta diversos casos em que grandes produtos são decompostos em múltiplos microserviços. Ele cita exemplos como Netflix, Amazon e Spotify, onde o produto final que o usuário vê é, na realidade, uma composição de dezenas ou até centenas de microserviços independentes. Newman enfatiza que o segredo está em encontrar o equilíbrio correto na granularidade dos serviços — nem muito grandes (que se tornariam mini-monolitos) nem muito pequenos (que aumentariam a complexidade desnecessariamente).
Chris Richardson aborda diretamente esta questão em seus padrões de microserviços, descrevendo como um produto pode (e deve) ser decomposto em serviços baseados em: