🌊
data

Streaming

Traitement continu de flux de donnees en temps reel, sans attendre que toutes les donnees soient disponibles.

Qu'est-ce que le streaming de donnees ?

Le streaming de donnees est un paradigme de traitement ou les donnees sont traitees de maniere continue au fur et a mesure de leur arrivee, plutot que par lots (batch). Contrairement au traitement batch qui attend d'avoir toutes les donnees avant de les traiter, le streaming traite chaque evenement ou message immediatement. Ce paradigme est essentiel pour les applications temps reel : detection de fraude, monitoring, analytics en direct, et systemes IoT.

Apache Kafka

Apache Kafka est la plateforme de streaming la plus utilisee. C'est un systeme de messagerie distribue base sur un log d'evenements persistant et ordonne. Concepts cles : les topics organisent les messages par categorie, les partitions permettent la parallelisation et la scalabilite, les producers publient des messages, les consumers (organises en consumer groups) lisent les messages. Kafka garantit l'ordre dans une partition et la durabilite des messages (repliques sur plusieurs brokers). Kafka Streams et ksqlDB permettent le traitement de flux directement sur Kafka.

Traitement de flux

Apache Flink est le moteur de traitement de flux le plus avance : fennetrage temporel (tumbling, sliding, session windows), gestion de l'etat (stateful processing), garanties exactly-once, et traitement d'evenements complexes (CEP). Apache Spark Structured Streaming etend Spark au streaming avec un modele micro-batch. AWS Kinesis est le service de streaming manage d'Amazon. Le choix depend des besoins : Flink pour le temps reel strict, Spark Streaming pour l'integration avec l'ecosysteme Spark, Kinesis pour la simplicite AWS.

Patterns de streaming

Event Sourcing : stocker les evenements plutot que l'etat final. L'etat est reconstruit en rejouant les evenements. Ideal pour l'audit, le debugging et le replay. CQRS : separer les modeles de lecture et d'ecriture, alimentes par des evenements. Change Data Capture (CDC) : capturer les changements de base de donnees et les streamer vers d'autres systemes (Debezium lit le WAL PostgreSQL/MySQL). Materialized Views : tables derivees mises a jour en temps reel par les evenements.

Streaming dans le developpement web

Au-dela du Big Data, le streaming s'applique au web : Server-Sent Events (SSE) pour le push unidirectionnel serveur vers client (notifications, feeds live). WebSocket pour la communication bidirectionnelle (chat, collaboration). HTTP Streaming (chunked transfer) pour les reponses progressives (streaming de LLM comme ChatGPT). React Server Components et Suspense utilisent le streaming HTML pour envoyer la page progressivement.

Besoin d'aide technique ?

Decrivez votre projet pour des conseils personnalises par nos experts.

Recevoir des conseils

Questions frequentes

Quelle est la difference entre Kafka et RabbitMQ ?
RabbitMQ est un message broker traditionnel (messages consommes puis supprimes, routing flexible, protocole AMQP). Kafka est une plateforme de streaming (log persistant, messages conserves, replay possible, haute throughput). RabbitMQ pour les patterns de messaging classiques (work queues, pub/sub simple). Kafka pour le streaming d'evenements, l'integration de systemes, et les hauts volumes.
Le streaming remplace-t-il le traitement batch ?
Non, les deux coexistent. Le batch reste pertinent pour les traitements lourds non-urgents (rapports quotidiens, ETL massif, entrainement de modeles ML). L'architecture Lambda combine batch et streaming. L'architecture Kappa simplifie en utilisant uniquement le streaming (le batch est un cas special de streaming). La tendance est vers le streaming-first avec du batch pour les cas specifiques.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.