Low-Code Development: Leverage low and no code to streamline your workflow so that you can focus on higher priorities.
DZone Security Research: Tell us your top security strategies in 2024, influence our research, and enter for a chance to win $!
CEO at HoloModular
Company website: https://HoloModular.com
Jacksonville, US
Joined Oct 2022
I am an innovative, business executive and software architect who turns creative ideas into enterprise-class technology based upon proven design standards, methodologies and with a commitment to excellence that ensures high levels of reliability and quality for customers in a matrixed, team-based environment.
Stats
Reputation: | 350 |
Pageviews: | 11.7K |
Articles: | 3 |
Comments: | 1 |
Comments
Oct 14, 2022 · Claudio Guidi
Thank you for the article, this is a common issue I keep seeing. When microservices with dependencies on other microservices, they become too chatty. The synchronous or asynchronous communication adds to the overall network overhead, especially in event-driven designs. By moving the microservices to run embedded with each other solves this. The hard part is how to achieve this.
I have recently built and am releasing a brand new microservice platform in a few weeks (shameless plug). https://ServiceBrick.com I solved this problem for this technique by using domain events. By embedding and running microservices together in the same process or container, and sharing a common eventing mechanism, especially with a repository-based design, you can hook into the event pipeline a share those same events with a base/core library, without a reference at all. Another solution would be to host an in-memory service bus to share those events specifically between them.
The services themselves are independent, self-contained and form a valid business domain context. But often dependencies between them when in the context of comprising an application, this becomes a more common problem. There is no rule that says you can't host microservices together. Another tool in the toolbelt.