# looplab/eventhorizon

Event Sourcing for Go!

Repository: https://github.com/looplab/eventhorizon
Canonical: https://ross.abutalabs.com/products/eventhorizon
Language: Go
License: Apache-2.0
License Family: permissive
Topics: go, cqrs, ddd, event-horizon, event-sourcing, domain-driven-design, google-cloud, aws, eventsourcing, entity, nats, jetstream, redis, mongodb, opentracing, kafka
Last push: 2026-08-24T21:08:14+00:00

## Health v2 (maintenance only)
Score: 84/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 57, longevity 100
- inputs: {"age_days": 4307, "days_push": 9, "days_rel": 78, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1676, forks 192 (observed 2026-08-28T04:05:20.565842+00:00)

## What it is
Event Horizon is a CQRS and Event Sourcing toolkit for Go, providing command handling, event stores, event buses, and read model support. It ships with official event store implementations for memory, MongoDB, and tracing, plus third-party stores for AWS DynamoDB, Postgres, and others.

## Use cases
- build event-sourced applications in Go
- implement CQRS command/query separation
- store domain events in MongoDB or Kafka
- build audit logs from recorded events
- create read models projected from events
- model domains with aggregates and commands

## When to choose
- you are building Go services with event sourcing or CQRS patterns
- you need pluggable event stores across MongoDB, Kafka, NATS, or Redis
- you want traceability and audit logging of all state changes
- you follow domain-driven design with aggregates and commands

## When to avoid
- you need a finalized, stable API for long-term projects
- your project is simple CRUD without event sourcing needs
- you work outside the Go ecosystem
- your aggregates may exceed MongoDB's 16MB document limit with the v1 store

## Facets
- artifact type: library
- maturity: active
- function: middleware, tracing, serialization
- domain: developer-tools, backend, microservices, databases
- platform: go, windows, cloud
- tags: event-sourcing, cqrs, ddd, event-store, aggregate, command-bus, event-bus, read-models, mongodb, kafka, nats, redis, linux, macos, docker

## Member repositories
- looplab/eventhorizon (main) score 84

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:20.565842+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-30T03:42:26.564525+00:00, confidence not recorded.
  - readme: https://github.com/looplab/eventhorizon (fetched 2026-08-28T04:05:20.565842+00:00, sha 6f0eb976a4aa)
- Data as of 2026-08-30T08:39:29.467469+00:00.
