Messaging

Azure App Service
Azure Cache for Redis

Solution ideas

This article is a solution idea. If you'd like us to expand the content with more information, such as potential use cases, alternative services, implementation considerations, or pricing guidance, let us know by providing GitHub feedback.

This solution uses Azure Cache for Redis to route real-time messages in publish and subscribe systems. It also scales up web communication frameworks like Azure SignalR Service.

Architecture

Architecture diagram of Azure Cache for Redis as a message broker. Messages arrive at the cache, go to web apps and web APIs, and then go to users.

Download a Visio file of this architecture.

Dataflow

  1. The publishers send messages to Azure Cache for Redis.
  2. Azure Cache for Redis stores these messages and manages the delivery to the subscribers.
  3. The subscribers pull messages that they've subscribed to from Azure Cache for Redis.

Components

  • Azure Cache for Redis is a fully managed, in-memory cache that enables high-performance and scalable architectures. You can use it to create cloud or hybrid deployments that handle millions of requests per second at submillisecond latency—all with the configuration, security, and availability benefits of a managed service. Although Azure Cache for Redis is often used as a data cache to improve application performance, you can also use it as a message broker.
  • Azure App Service is an HTTP-based service for hosting web applications, REST APIs, and mobile back ends. With App Service, you can develop in your favorite language, be it .NET, Java, Ruby, Node.js, PHP, or Python. Applications run and scale with ease in both Windows and Linux-based environments.
  • Azure SignalR Service is an open-source software library that provides a way to send notifications to web apps in real time.

Scenario details

This scenario demonstrates how to use Azure Cache for Redis as a message broker to implement a publish/subscribe asynchronous messaging capability. It's ideal for routing real-time messages. You can also use this solution to scale up web communication frameworks. For instance, you can use it to distribute messages across a SignalR application that's deployed on separate Internet Information Services (IIS) instances.

Potential use cases

This solution applies to scenarios that use publish and subscribe systems, including:

  • Middleware that connects the microservices of business functions within a company.
  • Collection and distribution systems for application logs.
  • Seating reservation systems.

Next steps