💻
Software Engineering Notes
  • Introduction
  • Event-Sourcing
  • CQS and CQRS
  • Domain-Driven Design
    • Overview
    • Business Domain
    • Subdomain
    • Bounded Context
      • Interaction Between Contexts
    • Layers
      • Domain Layer
      • Application Layer
      • Infrastructure Layer
  • Database
    • In-Memory (Redis)
    • Search Engine (Elasticsearch)
    • Column-Oriented (Cassandra)
    • Document-Oriented (MongoDB)
  • Messaging
    • Brokers
      • Kafka
  • Race Condition
  • Concurrency vs Parallelism
  • API Architectural Styles
    • gRPC
  • Language & Framework Specific Notes
    • Go (Golang)
Powered by GitBook
On this page

Event-Sourcing

With our usual state-based system:

  • CRUD operations executed on the DB table, which means we mutate the data as needed

  • Current state can be seen directly at the DB

Meanwhile, with event-sourcing, we store extra data (every event) that happens, not storing only the last state.

  • Create (append-only) and read operations only on DB tables

  • To get the current state, the data must be processed (reduced) first

  • Stored as event log, so no information loss

  • We can replay and see the state at any point of time

  • Events are immutable, allowing us to see evidence and how something happened (we can also see why something went wrong)

PreviousIntroductionNextCQS and CQRS

Last updated 1 year ago