Create event-driven apps and microservices on any platform with whatever language, open protocols, and APIs you choose.
PubSub+ is a platform that enables the design, discovery, streaming and full lifecycle management of events across distributed enterprises. It provides all of the tools necessary to support a modern event-driven architecture. The main components of the platform are PubSub+ Event Brokers, PubSub+ Event Portal and PubSub+ Cloud Console. Most of the content here focuses on PubSub+ Event Brokers.
Solace PubSub+ Event Brokers have built-in support for a variety of proprietary and open standard protocols and APIs, so you can create and connect apps with whatever language, open protocols and APIs you choose, without worrying about translation.
Solace messaging APIs offer uniform client access to all Solace PubSub+ capabilities and qualities of service, and are available for C, .NET, iOS, Java, JavaScript, JMS, Python and Node.js. Solace also supports popular open protocols like AMQP, JMS, MQTT, REST and WebSocket, and open APIs such as Paho and Qpid.
Microservices are a software development technique in which an application is broken down into a set of services that function as a processing pipeline. Decomposing an application into multiple microservices can bring several benefits, including improved development speed, an easier to understand code base, enablement of continuous delivery, improved scalability, and better fault isolation. In many cases, application processing is kicked off by a web request via an API gateway using the request/reply pattern. Once the request is received, the microservices work in concert behind the gateway to process the request.
To provide business value, microservices need to effectively communicate while maintaining their independence and singularity of purpose. Your default may be to use an orchestration layer to decouple your RESTful HTTP services from your microservices, and to synchronize interactions between your microservices (Figure 1). But as your system scales and the need for your microservices to work in parallel increases, so too does your need to take an event-driven approach enabled by asynchronous, publish-subscribe messaging patterns (Figure 2). This is the approach enabled by PubSub+ Event Brokers.
The brokers sit between your microservices, enabling them to publish events to the broker and subscribe to events published to the broker by other microservices. This approach carries many advantages:
An event mesh is to your event-driven applications what a service mesh is to your RESTful applications: an architectural layer that allows events from one application to be dynamically routed and received by other applications, across diverse systems, clouds and protocols. This layer is composed of a network of advanced event brokers. The capabilities of the brokers that compose the mesh determine the capabilities and quality of the mesh.
An event mesh built with PubSub+ Event Brokers is:
IP-addressed applications typically send and receive data to devices through an intermediary node like an IoT gateway, and the default communication pattern is request-reply over REST/HTTP (Figure 1).
For simple IoT projects and pilots that tend to be very focused and small scale, this will be the path of least resistance, and it will probably work just fine. But as you move from pilot to production in an enterprise environment, and as your application requirements grow more complex, the benefits of an event-driven approach enabled by event brokers and messaging patterns like publish-subscribe increase.
PubSub+ Event Brokers can sit between your applications, IoT Gateways, back-end systems and cloud services, enabling a variety of communication patterns between them (publish-subscribe, streaming, queuing and request-reply), and over a variety of open standard protocols and APIs (MQTT, AMQP, JMS, WebSockets, REST/HTTP). This carries a number of advantages:
It enables event-driven communication between diverse endpoints and networks (devices, gateways, legacy applications, cloud-based microservices, data lakes, analytics engines) without requiring you to build complex protocol translations into your applications (protocol translation is done by the broker).
Messaging refers to the passing of data between two applications via an intermediary broker (message-oriented middleware). Messaging communication patterns like publish-subscribe, queuing and streaming can be differentiated from other communications patterns like request-reply over REST/HTTP in that messaging enables the decoupling/loose coupling of applications (Figure 4), and messages are generally sent asynchronously, whereas point-to-point request-reply patterns tend to support synchronous interactions between applications that are tightly coupled (Figure 3).
If you’re experienced with messaging, you may be familiar with open source tools like RabbitMQ, ActiveMQ or Kafka, or a commercial product like IBM MQ, TIBCO EMS (for on-prem deployments), AWS SQS/SNS or Azure Service Bus (cloud-native). Each messaging solution has its pros and cons, but a modern event broker like PubSub+ fits the bill for enterprise use cases that demand high performance and reliability across public clouds, private clouds, and datacenters, the flexibility to deploy anywhere, and the need to leverage a variety of open standard protocols and APIs.
PubSub+ Event Brokers are uniquely designed to support modern development practices (microservices, reactive, polyglot) and architectures (event-driven, hybrid cloud, multi-cloud), with support for the publish-subscribe messaging pattern (along with the traditional queuing and request/reply patterns), dynamic event streaming, and a host of additional features that ensure enterprise-grade performance and reliability no matter the demands of load and scale.
To enable communication among cloud-native applications, microservices and cloud services, your default may be to use the request-reply pattern over REST/HTTP, or to leverage messaging services provided by the public cloud you’re working in – AWS SQS/SNS, Google Cloud Pub/Sub, Azure Service Bus, etc.
If you’re working in a single public cloud and your application has little need to consume data produced elsewhere (on premises, in private clouds, or in other public clouds), one of these approaches may work just fine. But as your application requirements grow to include publishing and subscribing to data streams across multiple public clouds and/or private clouds/datacenters, the benefits of using a cross-cloud and hybrid-cloud message broker increase.
PubSub+ Event Brokers support event-driven applications and architectures across hybrid-cloud, multi-cloud and IoT environments, with support for the publish-subscribe messaging pattern (along with the traditional queuing and request/reply patterns), dynamic event streaming, and a host of additional features that ensure enterprise-grade performance and reliability no matter the demands of load and scale.
PubSub+ Event Brokers can be deployed natively in AWS, GCP and Azure, as well as in private clouds/datacenters, and the brokers can be connected to form a dynamic event mesh for event-driven communication across all environments (see Event Mesh use case).
PubSub+ Event Broker Cloud offers enterprise-grade messaging as a service, on-demand in your favorite public and virtual private clouds.
Here are some of the cloud-related capabilities and benefits you can unlock:
Get up-to-speed in sending and receiving messages over open APIs and protocols, Solace Messaging APIs, and Pivotal Platform.
Check out our Solace samples for Spring, JMS, MQTT, AMQP, JavaScript, and more.
Access Quick Start deployment templates and Connectors available as open source projects on GitHub.
Get a jump start plugging PubSub+ into AWS, Kafka, Spark, IBM WebSphere, and much more.
A high level introduction to how PubSub+ processes events.
A high level introduction on how your app interacts with PubSub+ messaging components whether you're using SMF, JMS, MQTT, or REST.
Get up to speed on our managed messaging service.
SDKPerf is a command line tool for validating performance, checking configuration, and exploring features associated with your PubSub+ message broker.