Replies: 1 comment 1 reply
|
My two cents: I'm not sure what it means to be a bridge and not a broker. A client as source or sink makes sense, but I don't think writing a half-broker into Iggy does, just let people run mosquito or other broker with a real feature set. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
This proposal evaluates three ways to introduce MQTT connectivity to Iggy without committing to a single implementation upfront. The key question is where MQTT protocol handling and state should live while keeping Iggy Core focused on its streaming responsibilities.
The technical evaluation is discussed in three sub-proposals:
1. Strategic Context & Motivation
MQTT is widely used for IoT and edge workloads. MQTT connectivity would allow existing MQTT clients to interact with Iggy.
Core Design Consideration: Keep MQTT-specific protocol handling and broker state outside Iggy Core, while preserving Iggy's focus on high-performance streaming, storage, partitions, offsets, and replication.
2. Integration Models
Model 1: MQTT Broker + Iggy Connector
An external MQTT broker terminates MQTT connections and provides broker semantics. The connector handles data movement between the broker and Iggy.
Pros
Cons
Model 2: Dedicated Standalone MQTT Gateway (
iggy-gateway-mqtt)A standalone process terminates MQTT and translates MQTT operations into Iggy operations. This follows the standalone gateway approach being explored for Kafka.
Pros
Cons
Model 3: Native In-Process MQTT Surface
MQTT handling is implemented directly inside the Iggy server process.
Pros
Cons
3. Architectural Comparison Matrix
All reactions