# railseventstore/rails_event_store

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/railseventstore-rails-event-store).**

1,507 stars · 128 forks · Ruby · mit

## Links

- GitHub: https://github.com/RailsEventStore/rails_event_store
- Homepage: http://railseventstore.org
- awesome-repositories: https://awesome-repositories.com/repository/railseventstore-rails-event-store.md

## Topics

`aggregate-root` `cqrs` `cqrs-es` `ddd` `domain-driven-design` `event-driven` `event-driven-architecture` `event-sourcing` `rails` `ruby`

## Description

Rails Event Store is a library for implementing event sourcing and command query responsibility segregation patterns within Ruby applications. It functions as a framework for capturing all application state changes as an immutable sequence of events, providing a permanent and verifiable history of system operations.

The library provides a messaging infrastructure that decouples business logic by broadcasting domain events through a central bus. This architecture allows for the execution of handlers either immediately or asynchronously, ensuring that heavy processing tasks do not block the primary application flow.

Beyond core event management, the project supports the transformation of raw event streams into optimized read models. These projections enable efficient querying and reporting by separating data retrieval from the underlying write operations. The system also maintains chronological audit logs to meet security and compliance requirements, utilizing schema-agnostic serialization to ensure consistent data storage over time.

## Tags

### Software Engineering & Architecture

- [CQRS Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/cqrs-frameworks.md) — Provides a comprehensive framework for implementing command query responsibility segregation patterns to optimize data retrieval and system scalability.
- [Event Sourcing](https://awesome-repositories.com/f/software-engineering-architecture/event-state-persistence/event-sourcing.md) — Implements event sourcing by persisting all state changes as an immutable sequence of events. ([source](https://github.com/railseventstore/rails_event_store#readme))
- [Event Bus Architectures](https://awesome-repositories.com/f/software-engineering-architecture/event-bus-architectures.md) — Ships a messaging infrastructure that decouples business logic by broadcasting domain events to asynchronous handlers and background processing services.
- [Event Sourcing](https://awesome-repositories.com/f/software-engineering-architecture/event-sourcing.md) — Implements an event sourcing architecture that captures all application state changes as an immutable sequence of events for reliable data reconstruction.
- [Event Log Projections](https://awesome-repositories.com/f/software-engineering-architecture/reactive-stream-architectures/event-log-projections.md) — Transforms raw event streams into materialized read models for efficient querying and reporting.
- [Domain-Driven Designs](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/domain-driven-designs.md) — Supports domain-driven design by decoupling business logic through event-based messaging.
- [Append-Only Event Logs](https://awesome-repositories.com/f/software-engineering-architecture/stateful-distributed-actors/append-only-event-logs.md) — Provides an immutable, append-only event store that serves as the system's source of truth for state changes.
- [Background Processing](https://awesome-repositories.com/f/software-engineering-architecture/background-processing.md) — Executes event handlers asynchronously to perform secondary system operations without blocking the main flow.
- [Custom Event Handlers](https://awesome-repositories.com/f/software-engineering-architecture/custom-event-handlers.md) — Executes custom logic in response to system events, supporting both immediate and background processing. ([source](https://railseventstore.org/))
- [Event Store Libraries](https://awesome-repositories.com/f/software-engineering-architecture/event-state-persistence/immutable-event-logs/event-store-libraries.md) — Maintains immutable audit logs and state history by providing a structured library for event sourcing and CQRS patterns.

### Data & Databases

- [Read Model Projections](https://awesome-repositories.com/f/data-databases/read-model-projections.md) — Builds optimized read models from event streams to enable fast data retrieval for user interfaces. ([source](https://railseventstore.org/))

### Networking & Communication

- [Game Event Pub-Sub Systems](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-paradigms/broadcasting-patterns/global-broadcasting/system-broadcast-listeners/game-event-pub-sub-systems.md) — Decouples business logic by broadcasting domain events through a central pub-sub bus to independent subscribers.
- [Domain Event Emitters](https://awesome-repositories.com/f/networking-communication/pub-sub-systems/domain-event-emitters.md) — Broadcasts domain events to decouple business logic from secondary side effects and external integrations. ([source](https://railseventstore.org/))

### DevOps & Infrastructure

- [Background Process Offloading](https://awesome-repositories.com/f/devops-infrastructure/workflow-run-management/asynchronous-run-launches/background-process-offloading.md) — Offloads heavy event processing to background workers to ensure the main application remains responsive.

### Security & Cryptography

- [Audit Logs](https://awesome-repositories.com/f/security-cryptography/governance-policy-frameworks/compliance-governance/audit-and-compliance/audit-logs.md) — Generates chronological audit logs of system operations to satisfy security and compliance requirements. ([source](https://github.com/railseventstore/rails_event_store#readme))

### System Administration & Monitoring

- [Audit Logging Systems](https://awesome-repositories.com/f/system-administration-monitoring/audit-logging-systems.md) — Provides infrastructure for capturing and maintaining a chronological audit trail of system activities.
- [Event-Driven Background Processors](https://awesome-repositories.com/f/system-administration-monitoring/event-driven-background-processors.md) — Processes event handlers in the background to maintain application responsiveness during heavy tasks. ([source](http://railseventstore.org/))

### User Interface & Experience

- [Internal Application Events](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/application-event-multicasters/internal-application-events.md) — Facilitates communication between application components by publishing and consuming internal system events. ([source](https://github.com/railseventstore/rails_event_store#readme))
