Files
aether/vision.md
Hugo Nijhuis e9e50c021f
All checks were successful
CI / build (push) Successful in 1m13s
Initial aether repository structure
Distributed actor system with event sourcing for Go:
- event.go - Event, ActorSnapshot, EventStore interface
- eventbus.go - EventBus, EventBroadcaster for pub/sub
- nats_eventbus.go - NATS-backed cross-node event broadcasting
- store/ - InMemoryEventStore (testing), JetStreamEventStore (production)
- cluster/ - Node discovery, leader election, shard distribution
- model/ - EventStorming model types

Extracted from arcadia as open-source infrastructure component.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-08 19:30:02 +01:00

1.4 KiB

Aether Vision

Distributed actor system with event sourcing for Go, powered by NATS.

Organization Context

This repo is part of Flowmade. See organization manifesto for who we are and what we believe.

What This Is

Aether is an open-source infrastructure library for building distributed, event-sourced systems in Go. It provides:

  • Event sourcing primitives - Event, EventStore interface, snapshots
  • Event stores - In-memory (testing) and JetStream (production)
  • Event bus - Local and NATS-backed pub/sub with namespace isolation
  • Cluster management - Node discovery, leader election, shard distribution
  • Namespace isolation - Logical boundaries for multi-scope deployments

Who This Serves

  • Go developers building distributed systems
  • Teams implementing event sourcing and CQRS patterns
  • Projects needing actor-based concurrency with event persistence

Goals

  1. Simple event sourcing - Clear primitives that compose well
  2. NATS-native - Built for JetStream, not bolted on
  3. Horizontal scaling - Consistent hashing, shard migration, leader election
  4. Namespace isolation - Logical boundaries without infrastructure overhead

Non-Goals

  • Opinionated multi-tenancy (product layer concern)
  • Domain-specific abstractions (use the primitives)
  • GraphQL/REST API generation (build on top)
  • UI components (see iris)