Kevin Boone

Middleware

Using the Qpid Proton C++ library to create a server for monitoring or telemetry data

Collecting 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 AMQP

AMQP 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 Artemis

The 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 1

This 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 2

This 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 1

This 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 2

This 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 Artemis

Both 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 registry

This 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 broker

This 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 Camel

The 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 subscriptions

Shared 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 messaging

This article provides a brief overview of the rdkafka library, illustrated by a simple test application in C.

Categories: middleware

Kafka Connect from the ground up

This 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 II

This 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 broker

Using 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 bot

Camel'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 throughput

Administrators 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