Middleware
Using the Qpid Proton C++ library to create a server for monitoring or telemetry dataCollecting sensor data, or low-level system status information, is a job that is often best done in C/C++. Distributing this kind of data to other system components in a way that is platform- and language-independent can be a challenge. This article suggests a way to do this use AMQP message distribution.
Categories: embedded computing, middleware
Using the Qpid Proton C++ library to understand AMQPAMQP is not a trivially-straightforward protocol to understand, but it's necessary to get to grips with it to write effective software that uses the Qpid Proton AMQP library. Perhaps one of the simplest ways to understand AMQP is to use Proton's own packet-tracing features, as this article explains.
Categories: C, middleware
Using the new pluggable active/passive management framework in Apache ArtemisThe Apache ActiveMQ Artemis message broker holds out the possibility of real shared-nothing replication. The problem, though, lies in coordinating the active and passive brokers in the cluster. This article describes the new active/passive management framework, and how to use Apache Zookeeper as the source of authority on cluster roles.
Categories: middleware
Using an Oracle database as storage for the Apache Artemis message broker -- part 1This article describes the fundamentals of setting up the Apache Artemis message broker to use an Oracle database as the message data store.
Categories: middleware
Using an Oracle database as storage for the Apache Artemis message broker -- part 2This article is the second on my series on using the Oracle database as the message data store for the Apache Artemis message broker. In it, I describe the database schema, and how it supports messaging operations.
Categories: middleware
ActiveMQ/Artemis or Kafka for Java messaging?ActiveMQ and Kafka are both open-source, Java-based, message brokers with applications in inter-process communication. But can they be used interchangeably?
Categories: middleware
Using Keycloak for authentication with Apache Artemis: part 1This article provides a very simple example of setting up the Apache Artemis message broker to authenticate against a Keycloak server.
Categories: middleware
Using Keycloak for authentication with Apache Artemis: part 2This article continues my explanation of using Keycloak as an authentication provider for Apache Artemis, by showing how to use a bearer token to authenticate a JMS client.
Categories: middleware
Implementing Apache ActiveMQ-style broker meshes with Apache ArtemisBoth Apache ActiveMQ and Apache Artemis have infrastructure for creating networked message broker meshes. However, their implementations are rather different, which can be problematic for integrators who want to migrate from ActiveMQ to Artemis. This article describes how to replicate -- so far as possible -- ActiveMQ mesh behaviour in Artemis.
Categories: middleware
Using Apache Avro for passing Java objects through a message broker, with a schema registryThis article extends my earlier article on using Avro with a message broker. In this article I explain how to use the Apicurio schema registry to store Avro schema artefacts that are shared by multiple clients, rather than providing local copies for each client.
Categories: software development, Java, middleware
Using Apache Avro for passing Java objects through a message brokerThis article describes how to use Apache Avro to flatten a Java object, pass it through a JMS-compatible message broker, and reconstruct it again. Avro is a compact, schema-based data representation that is becoming increasingly important in messaging applications.
Categories: software development, Java, middleware
Capturing database change records using Debezium and CamelThe notion of change data capture (CDC) is becoming increasingly significant, in an IT industry that stores and manages an ever-increasing volume of data. This article describes how to begin using the Debezium CDC framework with Apache Came, to collect and process change records from disparate data sources.
Categories: software development, Java, middleware
Getting to grips with JMS shared subscriptionsShared subscriptions are a 'new' feature in JMS, that seems to be poorly understood, particularly in a clustered environment. In this article, I explain how shared subscriptions are supposed to work, and what the implications are for load sharing and fault tolerance.
Categories: middleware
Using the rdkafka library to integrate a C program with Kafka messagingThis article provides a brief overview of the rdkafka library, illustrated by a simple test application in C.
Categories: middleware
Kafka Connect from the ground upThis article describes what I think is the simplest possible Kafka Connect set-up, using a single-node Kafka installation. To ensure that the principles are clear, I use only a text editor and command-line tools to run the Connect infrastructure and deploy the connector.
Categories: middleware
Kafka Connect from the ground up, part IIThis article describes what I think is the simplest possible Kafka Connect on Strimzi -- the Kubernetes implementation of Kafka. If follows from an earlier article about using Kafka Connect on bare metal.
Categories: middleware
Deploying the Mosquitto MQTT message broker on OpenShift (part 2)Part 2 of my article on installation the Mosquitto MQTT message broker on OpenShift.
Categories: OpenShift, middleware
Deploying the Mosquitto MQTT message broker on OpenShift (part 1)This article describes a method for deploying the Mosquitto MQTT message broker on OpenShift. Such an installation might potentially be useful in its own right, but the main purpose of the article is to discuss issues that are relevant packaging any application in an OpenShift-compatible way.
Categories: OpenShift, middleware
Using Quarkus to provide a REST interface to a message brokerUsing a Camel application based on Quarkus to provide a way to route messages to and from a message broker using HTTP requests
Categories: software development, Java, middleware
Using Apache Camel to implement an IRC botCamel's IRC support makes it relatively easy to implement an IRC conversation agent, that can process IRC messages and produce responses.
Categories: software development, Java, middleware
Why synchronous write speed is likely to be the limiting factor in message broker throughputAdministrators of middleware message brokers often struggle to get adequate throughput. A lot of time and effort can be wasted, if the administrator doesn't appreciate the crucial role of synchronous disk writes in these installations.
Categories: middleware
