Använda Kafka i din händelsebaserade arkitektur!

folder_openNyheter, Tech

I en händelsebaserad arkitektur hanteras applikationsdata som en ström av händelser. Exempel på händelser kan vara att någon loggar in, en betalning görs eller att någon försöker göra något som denne inte har rätt till i en applikation.

Kafka skapades på LinkedIn och blev öppen källkod år 2011 och donerades då till Apache Software Foundation. Idag är Kafka helt gratis att använda och hanteras av Apache.

Några av de mer kända företagen som använder Kafka för sina tjänster är exempelvis Uber, Netflix, Spotify, Shopify och Hotels.com. Man kan beskriva Kafka som en distribuerad plattform som kan klustras med inbyggt stöd för partitionering och replikering.

Kort kan man säga att andra stora fördelar med Kafka är att den har:

  • Garanti att meddelanden kommer fram i den ordning som de skickades.
  • Ett lagringssystem som effektivt kan skalas upp till att hantera data i TB storlek.
  • Konfigurerbar tid hur den ska hantera nedtider så när systemet åter är uppe så tappas inga händelser eller kommer i fel ordning.

Med alla dessa fördelar så är Kafka en perfekt match för att hantera designmönster kopplade till händelsebaserade arkitekturer.

Här kommer några exempel på populära designmönster inom en sådan arkitektur:

Notifiering att händelse skett:
T.ex. en mikrotjänst som hanterar användare kan i sitt flöde där nya användare skapas skicka som sista meddelande en händelse att en ny användare skapats på korrekt sätt. Sen är det upp till de tjänster som lyssnar på denna händelse att göra något med det. Dessa händelser har oftast inte så mycket data vilket möjliggör löst kopplade system där väldigt lite nätverkskapacitet krävs för att skicka meddelandet.

Tillståndsöverföring i en händelse:
Här skickas även mer information om vad som skett i en microtjänst tex användarnamn, för och efternamn, samt rättigheter på en nyskapad användare. Detta kräver mer nätverkskapacitet och kan leda till duplicering av sparad data beroende på vad mottagaren gör med informationen.

Händelsekällor:
Här sparas alla händelser i kronologisk ordning och listan av alla händelser är det som är sanningen. Detta kan jämföras med hur en blockkedja inom kryptovalutor är uppbyggd eller alla transaktioner som skett i en databas. Dvs man sparar förändringar som sker och ändrar aldrig i tidigare sparad data. Detta gör även att man kan spela upp händelser som skett från en tidpunkt till vilken annan tidpunkt som helst. En nackdel är att det kan vara svårt att hantera strukturförändringar på datat som troligen sker över tid när ditt system har använts en längre tid.

Läs mer om Kafka på Apache Software Foundation! Behöver du hjälp att implementera eller utveckla ett projekt där Kafka är inblandat?
Kontakta Code Labs så hjälper vi dig med en specialist på ämnet.

Tags: , , , , ,

Related Posts

Meny