Technology Radar TemplateTechnology Radar Template

Decoupling via Messaging

architecturedevops
Adopt

In recent years, messaging systems have become more robust, scalable, and easier to integrate with existing applications. This has increased the importance of messaging in modern software architectures, making it an essential strategy for decoupling components and ensuring the resilience and stability of distributed systems:

  • Event Streaming: Platforms such as Apache Kafka have evolved significantly to handle massive data streams with enhanced reliability and integration capabilities.
  • Serverless Messaging: The rise of serverless computing has simplified the creation of scalable, event-driven architectures, allowing developers to build complex workflows and event-processing pipelines without the overhead of managing infrastructure.
  • Advanced Observability: Improved tools for monitoring and managing messaging systems now offer detailed insights into message flows and system performance, enabling faster diagnosis and resolution of issues.
Adopt

Updated to "adopt"

Trial

In Microservices, we have already covered the trend that modern architectures are moving away from big monolithic applications to distributed software suites. The result of splitting our software and infrastructure into smaller parts is the need for these parts to communicate with each other. This can be done through direct communication or message-based asynchronous communication.

While synchronous communication allows for more predictable "real-time" response times of the overall systems, asynchronous communication significantly increases the resilience and stability of the system and allows for the use of other integration and scaling patterns. However, it often comes with additional complexity.

Most IaaS Cloud providers offer messaging services, such as AWS SQS, which provide the possibility to decouple our infrastructure via messaging. Additionally, we use RabbitMQ as a messaging and broker solution within our applications. The decision to use messaging and messaging patterns as an integration strategy can be made as part of strategic design considerations.