Catalog
concept#Architecture#Software Engineering#Interoperability#Scalability

Messaging

Messaging is a concept that enables the exchange of information between systems or users.

Messaging enables asynchronous communication between different applications and systems.
Established
Medium

Classification

  • Medium
  • Organizational
  • Architectural
  • Advanced

Technical context

Database Management SystemsCloud ProvidersThird-party APIs

Principles & goals

Separation of ConcernsAsynchronous ProcessingDecoupling of Services
Build
Enterprise

Use cases & scenarios

Compromises

  • Dependencies Between Services
  • Message Loss
  • Security Concerns
  • Use standardized message formats.
  • Implement error handling.
  • Monitor messaging performance.

I/O & resources

  • User Input
  • System Data
  • Event Sources
  • Message Sent
  • Data Transfer Completed
  • User Notification

Description

Messaging enables asynchronous communication between different applications and systems. It promotes service decoupling and enhances interoperability through defined message formats. This flexibility supports the scalability and robustness of applications.

  • Increased Scalability
  • Better Fault Tolerance
  • Flexibility in Integration

  • Requires Additional Infrastructure
  • Complex Debugging
  • Potential Latency Issues

  • Message Weight

    The average weight of messages sent.

  • Processing Time

    The average time taken to process a message.

  • Throughput

    Number of messages processed per unit of time.

Messaging in Microservices

An example of using messaging to decouple microservices.

Notification Services

A service that sends real-time notifications to users.

Event-Driven Architectures

Using messaging in an event-driven architecture.

1

Define the requirements for messaging.

2

Choose a messaging protocol.

3

Implement the messaging logic.

⚠️ Technical debt & bottlenecks

  • Using Outdated Libraries
  • Maintaining Poor Documentation
  • Performing Inadequate Testing
Performance BottleneckDependenciesManagement Complexity
  • Not Validating Messages
  • Creating Excessive Dependencies
  • Not Implementing Retries
  • Generating Too Many Messages
  • Overloading User Interface
  • Not Logging Messages
Knowledge of Asynchronous SystemsExperience with Messaging ProtocolsAbility to Debug
InteroperabilityScalabilityFlexibility
  • Requires network conditions for real-time communication.
  • Restrictions on message size.
  • Availability requirements.