# eugene-khyst/postgresql-event-sourcing

A reference implementation of an event-sourced system that uses PostgreSQL as an event store built with Spring Boot. Fork the repository and use it as a template for your projects. Or clone the repository and run end-to-end tests to see how everything works together.

Repository: https://github.com/eugene-khyst/postgresql-event-sourcing
Canonical: https://ross.abutalabs.com/products/postgresql-event-sourcing
Language: Java
License: Apache-2.0
License Family: permissive
Topics: cqrs, eventsourcing, event-sourcing, postgresql, postgres, solution-architecture, ddd, event-driven, event-driven-architecture, event-store, postgres-notifications
Archived: true
Last push: 2026-03-23T02:56:05+00:00

## Health v2 (maintenance only)
Score: 10/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 73, release rhythm 35, longevity 100
- inputs: {"age_days": 1956, "days_push": 163, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, archived
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1356, forks 136 (observed 2026-08-28T04:04:29.314442+00:00)

## What it is
A reference implementation of an event-sourced system using PostgreSQL as the event store, built with Spring Boot in Java. It demonstrates CQRS, snapshotting, transactional outbox patterns, and Postgres Listen/Notify, and can be forked as a project template or run with end-to-end tests.

## Use cases
- implement event sourcing with postgresql
- learn cqrs and event-driven architecture
- use postgres as an event store instead of specialized databases
- template for a spring boot event-sourced project
- implement transactional outbox pattern
- understand optimistic concurrency control for event streams
- build an audit trail with event streams

## When to choose
- you want to learn or bootstrap event sourcing and CQRS on PostgreSQL with Spring Boot
- you need a working reference for transactional outbox and projection patterns
- you prefer PostgreSQL over specialized event-store databases

## When to avoid
- you need a production-grade event store framework with out-of-the-box features
- your stack is not Java/Spring Boot
- you want a simple state-oriented persistence without event history

## Facets
- artifact type: learning-resource
- maturity: active
- function: database, message-queue, e2e-testing, documentation
- domain: databases, backend, developer-tools, tutorials
- platform: jvm
- tags: event-sourcing, cqrs, ddd, spring-boot, event-store, transactional-outbox, postgres-listen-notify, reference-implementation, postgresql, docker

## Member repositories
- eugene-khyst/postgresql-event-sourcing (main) score 10

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:29.314442+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:41:54.031150+00:00, confidence not recorded.
  - readme: https://github.com/eugene-khyst/postgresql-event-sourcing (fetched 2026-08-28T04:04:29.314442+00:00, sha 6564f0fe3d05)
- Data as of 2026-08-30T08:39:29.467469+00:00.
