Bygg bättre backend: Därför räcker inte vanliga databaser – Event Sourcing och Domain Models förändrar allt
Bygg bättre backend-system: Varför event sourcing och domain-modeller gör skillnad
I branschdiskussioner dyker termer som event sourcing, domain-driven design och CQRS upp hela tiden. De låter avancerade. Svåra. Många utvecklare skippar dem – eller bygger in onödig komplexitet.
Men de här mönstren finns av en anledning. De löser verkliga problem. Och idag är de enklare att komma igång med.
Problemet med traditionella databaser
Vanligtvis är databasen din sanning. Du sparar ett användarobjekt. Ändrar det. Sparar igen. Enkelt.
Tills du behöver veta vad som ändrades, när och varför. Eller replaya systemet för att felsöka en bugg från förra veckan. Eller hantera ett domän med massor av affärsregler – inte bara en snapshot.
Då kommer event sourcing in. Istället för aktuell state sparar du händelserna som ledde dit. Varje affärsaktion – betalning godkänd, order skapad, lager uppdaterat – blir en oföränderlig logg. Aktuell state? Den byggs genom att spela upp händelserna.
Kombinera med domain-driven design, som modellerar koden efter verkliga affärsbegrepp. Resultatet blir system som är:
- Spårbara – varje ändring loggas automatiskt
- Felsökbara – replay till valfri tidpunkt
- Skalbara – separera skriv och läsning
- Affärsanpassade – koden speglar logiken
Svårigheten med tankesättet
Många projekt kraschar här. Event sourcing och DDD kräver nytt tänk. Identifiera aggregates (grupper av relaterade objekt), commands (aktioner som triggar förändring) och events (vad som hände).
Fel modellering ger kaos. Rätt ger själv-dokumenterande arkitektur.
Problemet? Ingen struktur för att fånga modellen. Whiteboard-ritningar eller huvudminne funkar inte när:
- Nya teammedlemmar ska onboardas
- Affärsfolk ska förstå logiken
- Verktyg behöver domänkunskap
- AI ska hjälpa till med modeller
ESDM: Ett språk för din domän
Här hjälper ESDM (Event-Sourced Domain Modeling). Ett YAML-baserat språk för event-sourcing-system:
- Aggregates – kärn-affärsentiteter
- Events – vad som skedde
- Commands – vad som triggade det
- Read Models – hur du frågar efter data
- Process Managers – hanterar flerstegsflöden
- Context Mappings – kommunikation mellan domäner
YAML är läsbart för människor. Strukturerat för verktyg. Och simpelt nog för LLMs att läsa och skriva.
AI gör det enklare
Moderna team använder redan AI för kod. Varför inte för domänmodeller?
Mata in kodbasen i en LLM med rätt vokabulär – den extraherar en event-sourcing-modell. Börja om? Låt AI skissa grundstrukturen. YAML-filen blir dokumentation och grund för verktyg.
Det ersätter inte domänkunskap. Någon måste validera. Men det snabbar på från affärsbeskrivning till systemstruktur.
Anpassa efter ditt läge
Alla team är inte lika långt:
Nybörjare? Börja med grunderna. Guides tar dig från "vad är en aggregate?" till första modellen.
Har redan event-sourcing? Dokumentera. Formell modell underlättar onboarding och beslut.
Bygger verktyg? ESDM-schema blir kontraktet. Validators, kodgeneratorer och plugins bygger på det.
Använder AI? Strukturen gör LLMs effektiva – inte bara pseudokod.
Den stora bilden
Event sourcing och DDD är inga mirakel. De tillför komplexitet. Men i rätt riktningar: spårbarhet, skalbarhet, klarhet.
Verktygen förändras. Standardiserad modellering, validering och kodgenerering sänker tröskeln.
Med AI som skissar? Snabbare väg från idé till fungerande ESDM-fil.
Vad det betyder för dig
Bygger du system som ska:
- Hållas vid liv länge
- Vara spårbara och compliant
- Skala med affärslogik
- Vara lätta att greppa för nya
Då är domänmodellering ingen lyx. Det är basen.
Börja litet. Modellera en bounded context. Se hur det klarnar. Iterera. Använd AI för draft – strukturen räknas.
Din framtida kodbas (och teamet) tackar dig för en tydlig logg över vad systemet gör – och varför.