🌊
data

Streaming

Traitement continu de flux de données en temps réel, sans attendre que toutes les données soient disponibles.

Qu'est-ce que le streaming de données ?

Le streaming de données est un paradigme de traitement ou les données sont traitées de manière continue au fur et à mesure de leur arrivee, plutôt que par lots (batch). Contrairement au traitement batch qui attend d'avoir toutes les données avant de les traiter, le streaming traite chaque événement ou message immédiatement. Ce paradigme est essentiel pour les applications temps réel : détection de fraude, monitoring, analytics en direct, et systèmes IoT.

Apache Kafka

Apache Kafka est la plateforme de streaming la plus utilisee. C'est un système de messagerie distribue base sur un log d'événements persistant et ordonne. Concepts clés : les topics organisent les messages par catégorie, les partitions permettent la parallelisation et la scalabilité, les producers publient des messages, les consumers (organisés en consumer groups) lisent les messages. Kafka garantit l'ordre dans une partition et la durabilité 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'état (stateful processing), garanties exactly-once, et traitement d'événements complexes (CEP). Apache Spark Structured Streaming étend Spark au streaming avec un modèle micro-batch. AWS Kinesis est le service de streaming manage d'Amazon. Le choix dépend des besoins : Flink pour le temps réel strict, Spark Streaming pour l'intégration avec l'écosystème Spark, Kinesis pour la simplicité AWS.

Patterns de streaming

Event Sourcing : stocker les événements plutôt que l'état final. L'état est reconstruit en rejouant les événements. Idéal pour l'audit, le debugging et le replay. CQRS : séparer les modèles de lecture et d'écriture, alimentes par des événements. Change Data Capture (CDC) : capturer les changements de base de données et les streamer vers d'autres systèmes (Debezium lit le WAL PostgreSQL/MySQL). Materialized Views : tables dérivées mises à jour en temps réel par les événements.

Streaming dans le développement web

Au-delà 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 réponses 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 fréquentes

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 liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.