Kafka

Kafka er en open-source ‘distribuert streaming plattform’, ofte brukt som en meldingsbuss med stor trafikk og lav forsinkelse. Kafka kan bli brukt som en erstatter for vanlige meldings-busser, men har funksjonalitet som gjør at det kan brukes som en database eller en datastrøm.

Brukt som en vanlig meldingsbuss så er kafka en svært robust og effektiv måte å håndtere meldinger. Man kan sikre exactly-once-delivery og man kan re-prosessere meldinger ved behov.

Kafka-Streams lar deg se på ‘vinduer’ av data i datastrømmen og gjøre avanserte aggregeringer basert på data i et løpende tidsvindu i sanntid. Denne funksjonaliteten blir gjerne dratt frem som en av de kule tingene i kafka, men det har vist seg svært vanskelig å bruke på en robust måte.

Systemer med behov for å prosessere store mengder av sanntids-informasjon fra flere data-kilder er typiske systemer som vil bruke kafka.

Våre anbefalinger

The Log: What every software engineer should know about real-time data's unifying abstraction

Fantastisk bra artikkel om logg som sentralt system for integrasjon, konsistens og asynkron meldingsutveksling. Skrevet av mannen bak Kafka. Bør leses av alle som har interesse av arkitektur hos større bedrifter med flere systemer som skal snakke sammen. Les artikkel

I will say this only once

Exactly once-semantikk er nyttige greier, men det er utrolig vanskelig å implementere riktig. Her er hvordan Kafka gjør det. Se presentasjonen