Обобщенное определение микросервисной архитектуры звучит так: это стиль проектирования, который разбивает приложение на отдельные сервисы с разными функциями. Которые могут работать, разрабатываться и деплоится независимо
> Заметьте, что размер здесь вообще не упоминается. Главное, чтобы каждый сервис имел четкий перечень связанных между собой обязанностей.
В микросервисной архитектуре единицей модульности является сервис. Сервисы обладают API, которые служат непроницаемым барьером. В отличие от пакетов в Java API нельзя обойти, чтобы обратиться к внутреннему классу.
**Межсетевое взаимодействие:** Примитивные каналы, такие как брокер сообщений, или прямое взаимодействие с помощью легковесных протоколов наподобие REST или [[gRPC]].
## Достоинства
- Делает возможной [Continuous Delivery](Continuous%20Delivery.md)
- Сервисы разрабатываются независимо друг от друга
- Сервисы масштабируются независимо друго от друга
- Позволяет эксперементировать и внедрять новые технологии
- Лучше изолируются неполадки.
## Подходы
- [Database per service](Database%20per%20service.md) - у каждого сервиса своя база данных.
## Полезное
- [What are microservices?](https://microservices.io/)