Microservice - это архитектурный стиль, который плохо определен. Есть несколько сообщений в блогах, эссе, а теперь книга (Building Microservices Сэма Ньюмана), которые пытаются объяснить микросервисы. Но это стало модным словом, и ожидаемые характеристики (например, «разработанные командой, которая может быть подана 1 или 2 пиццами») варьируются от одного автора к другому. Если мы отфильтровываем шум, я считаю, что отличительным фактором является то, что для микросервисов блок развертывания должен содержать только одну услугу или всего лишь несколько связных сервисов. Я исследую эту точку в short blog post.
В вашем примере, при прочих равных условий, вы бы иметь различные microservices, такие как:
- счет (регистрация самости, сброс пароля, логин и т.д.)
- каталога (пункты с их ценой , описание и биржевой информации, а также возможности поиска)
- заказа на поставку
Эти услуги, как ожидается, общаться между собой с помощью HTTP (REST) и/или события с помощью брокер сообщений. И ваш дизайн должен минимизировать связь между микросервисами. Как это сделать? Одна из идей заключается в разработке микросервисов вокруг ограниченного контекста DDD. В любом случае, микросервисы не являются хорошей идеей во всех случаях, и вы должны знать об tradeoffs involved.