Architecture: Add Message Broker (Pulsar/Redpanda) integration

- New section: Message Broker (Pulsar/Redpanda)
- Updated Mermaid diagram with Message_Broker_Network
- Added Scorpio (FIWARE) native Kafka integration note
- New data flow: MQTT -> Message Broker -> Backends
- Updated connections list (5. Message Broker)
This commit is contained in:
Eric FELIXINE
2026-05-05 00:25:51 -04:00
parent e7b6f5c8e2
commit 5f9da72aa7

View File

@@ -116,27 +116,64 @@ graph TD
DG --- DC[digital-twin-connector]
end
%% Flux de données simplifiés
EM -->|MQTT| DG
EM -->|MQTT| OR
%% NOUVEAU : Message Broker Network
subgraph Message_Broker_Network [Message Broker (Pulsar/Redpanda)]
MB[Message Broker\n(Pulsar :6650 / Redpanda :9092)]
MB --- SK %% Kafka-compatibilité (Stellio Kafka)
end
%% Flux de données avec Message Broker
EM -->|MQTT| MB
MO -->|Metrics| MB
MB -->|Topics| OR
MB -->|Topics| ST
MB -->|Metrics| PR
MB -->|Topics| IF
OR -->|NGSI-LD| FR
OR -->|NGSI-LD| ST
IF -->|InfluxDB| DG
DG -->|Grafana Dashboards| User[Utilisateur]
%% Note Scorpio integration
SC[Scorpio (FIWARE)\n:Kafka native] -.->|Kafka| MB
```
---
## 5. Connexions Clés
## 5. Message Broker (Pulsar/Redpanda) - NOUVEAU
Pour faciliter l'ingestion et le routage des données vers plusieurs backends (Prometheus, Context Brokers, etc.), un **message broker** sera ajouté entre les brokers MQTT et les services en aval.
### Options préférées :
- **Apache Pulsar** : Alternative cloud-native à Kafka, avec support natif des topics persistants et de la messagerie multi-tenant.
- **Redpanda** : Compatible Kafka, mais sans dépendance ZooKeeper, plus simple à déployer.
### Intégration avec FIWARE Scorpio :
- **Scorpio** (Context Broker FIWARE) intègre nativement **Kafka**, ce qui facilitera l'interconnexion avec le message broker.
### Nouveau flux de données :
```
MQTT Brokers (EMQX, Mosquitto, BunkerM)
Message Broker (Pulsar/Redpanda)
↓ ↓ ↓
├─→ Context Brokers (Orion-LD, Stellio, Scorpio)
├─→ Prometheus (via exporter)
├─→ Time-Series DB (InfluxDB, CrateDB)
└─→ autres backends (OpenRemote, GeoServer, etc.)
```
## 6. Connexions Clés
1. **Traefik** (`:80`/`:443`) : Reverse proxy pour tous les services exposés à l'hôte.
2. **Brokers MQTT** (Mosquitto `:1883`, EMQX `:11883`) : Réception des données du simulateur et des capteurs IoT.
3. **Context Brokers** (Orion-LD `:2026`, Stellio `:8087`) : Reçoivent les données NGSI-LD et les transmettent à FROST et Grafana.
4. **FROST-Server** (`:8090`) : Stockage des données OGC SensorThings, connecté à PostgreSQL (`frost_http-database-1`).
5. **Grafana** (`:3001`) : Visualisation des données depuis InfluxDB, Prometheus, et (via adaptateurs) Orion-LD/Stellio.
6. **OpenRemote** (`:8080`) : Gestion des assets IoT, authentification via Keycloak, proxyé par Traefik.
7. **GeoServer** (`:8080`) : Serveur de tuiles cartographiques, connecté au réseau FROST.
8. **Node-RED** (`:1880`) : Alternative possible pour le simulateur IoT (projeté).
3. **Message Broker** (Pulsar `:6650`/Redpanda `:9092`) : **NOUVEAU** - Ingest et routage vers les backends.
4. **Context Brokers** (Orion-LD `:2026`, Stellio `:8087`, Scorpio `:?`) : Reçoivent les données NGSI-LD (Scorpio via Kafka natif).
5. **FROST-Server** (`:8090`) : Stockage des données OGC SensorThings, connecté à PostgreSQL (`frost_http-database-1`).
6. **Grafana** (`:3001`) : Visualisation des données depuis InfluxDB, Prometheus, et (via adaptateurs) Orion-LD/Stellio.
7. **OpenRemote** (`:8080`) : Gestion des assets IoT, authentification via Keycloak, proxyé par Traefik.
8. **GeoServer** (`:8080`) : Serveur de tuiles cartographiques, connecté au réseau FROST.
9. **Node-RED** (`:1880`) : Alternative possible pour le simulateur IoT (projeté).
---