Scopri Waterstream

Waterstream è il più completo broker MQTT che funziona su qualsiasi piattaforma compatibile con Kafka tramite consumer e producer nativi.

Perché Waterstream

Waterstream è un broker MQTT che utilizza Kafka come unico motore di archiviazione e distribuzione, combinando il protocollo IoT più utilizzato con l’API di streaming standard del mercato.

MQTT

MQTT è il protocollo IoT più diffuso per ottime ragioni: è leggero, è supportato da tutti i linguaggi di programmazione ed è ottimo in situazioni di scarsa connettività come le reti mobili. Ma non è stato progettato per lo stream processing e non supporta il reprocessing degli eventi.

Apache Kafka

Apache Kafka è una piattaforma di streaming che offre elevata scalabilità e disponibilità, archiviazione a lungo termine e una perfetta integrazione con altre tecnologie. Ma non è stata progettata per l'IoT perché richiede una rete stabile, non supporta decine di migliaia di connessioni e non supporta funzioni specifiche dell'IoT come Keep Alive o Last Will.

Il meglio di entrambi gli ecosistemi

Waterstream ti offre il meglio di entrambi gli ecosistemi in un'unica soluzione, facendo sì che dati MQTT e Kafka lavorino insieme alla perfezione con elevata scalabilità, milioni di connessioni, stream processing in tempo reale, integrazione semplice con i database, key-value store, indici di ricerca e file system.

Come funziona

I messaggi MQTT in arrivo dai client e client-state vengono salvati direttamente in Kafka senza archiviazione intermedia.

favicon_wt-01

Waterstream può leggere i record dai topic di Kafka ed eventualmente inviarli ai clienti tramite MQTT o Websocket.

favicon_wt-01

Ogni nodo Waterstream è stateless perché tutto viene memorizzato in Kafka. Questo permette bassa latenza ed eccellente scalabilità

favicon_wt-01

Reference architecture

Uno scenario tipico richiede il deployment di più istanze di Waterstream, chiamate anche nodi, per garantire tolleranza agli errori e scalabilità. I nodi Waterstream non memorizzano alcuna informazione – tutto è archiviato in Kafka – quindi possono essere aggiunti o rimossi dinamicamente in base al carico. È necessario un load balancer tra i client MQTT e i nodi Waterstream per distribuire il traffico di rete.

Waterstream memorizza i messaggi MQTT in arrivo nei topic Kafka configurati. Una volta in Kafka, i dati possono essere consumati da qualsiasi client Kafka, come le applicazioni Kafka Consumer, Kafka Connect e Kafka Streams. I producer Kafka possono inviare a loro volta messaggi ai client MQTT scrivendo sui topic Kafka designati.

Waterstream offre observability integrata attraverso Prometheus e Grafana; è possibile aggiungere metriche personalizzate attraverso un sistema di plugin.

Gestisci milioni di clienti

Waterstream scala in modo lineare. Per la maggior parte delle operazioni, i suoi nodi non dipendono l’uno dall’altro e altri nodi possono essere aggiunti per supportare un numero crescente di client.

Sono stati eseguiti diversi test di scalabilità per verificare e mettere a punto le prestazioni di Waterstream. Come mostrato nel grafico, Waterstream è stato in grado di gestire più di un milione di dispositivi connessi, utilizzando solo 12 nodi con modesta potenza di calcolo (2 CPU, 7,5 GB di RAM).

Metti in produzione ovunque con qualsiasi piattaforma compatibile con Kafka

Waterstream viene distribuito come immagine Docker (x86/ARM64) con requisiti minimi di RAM e CPU. Waterstream può essere distribuito at the edge, on-prem e in cloud come processo autonomo o all’interno di un cluster Kubernetes. Per saperne di più, consulta la nostra documentazione.

Per funzionare, Waterstream richiede Apache Kafka 1.1.0 o superiore. È supportato da diverse distribuzioni di Kafka, come Confluent Cloud o IBM Event Stream. Waterstream è un’integrazione verificata da Confluent che soddisfa i requisiti standard di qualità e compatibilità con Confluent Cloud.

Waterstream funziona anche con implementazioni alternative del protocollo Kafka come Redpanda. Per saperne di più, dai un’occhiata alla nostra demo dell’integrazione con Redpanda.

Sei pronto per iniziare?

Richiedi una demo o parla con il nostro team tecnico per maggiori informazioni.