Skip to content

renatillas/eventsourcing_sqlite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Eventsourcing SQLite

Event Sourcing Library for Gleam with SQLite
A Gleam library for building event-sourced systems using SQLite as the event store.


Table of contents

Introduction

eventsourcing_sqlite is a Gleam library designed to help developers build event-sourced systems using SQLite. Event sourcing is a pattern where changes to the application's state are stored as an immutable sequence of events. This approach provides several benefits, including complete audit trails, simplified debugging, and the ability to reconstruct past states.

Features

  • Event Sourcing: Build systems based on the event sourcing pattern.
  • SQLite Event Store: Robust event store implementation using SQLite.
  • Command Handling: Handle commands and produce events with robust error handling.
  • Event Application: Apply events to update aggregates.
  • Snapshotting: Optimize aggregate rebuilding with configurable snapshots.
  • Type-safe Error Handling: Comprehensive error types and Result-based API.

Concurrency Safety

This driver is designed to be used in a single-threaded environment. It is not safe to use this driver in a multi-threaded environment.

Philosophy

eventsourcing_sqlite is designed to make building event-sourced systems easy and intuitive. It encourages a clear separation between command handling and event application, making your code more maintainable and testable.

Installation

Add eventsourcing_sqlite to your Gleam projects from the command line:

gleam add eventsourcing_sqlite

Support

eventsourcing_sqlite is built by Renatillas. Contributions are very welcome! If you've spotted a bug, or would like to suggest a feature, please open an issue or a pull request.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b my-feature-branch).
  3. Make your changes and commit them (git commit -m 'Add new feature').
  4. Push to the branch (git push origin my-feature-branch).
  5. Open a pull request.

Please ensure your code adheres to the project's coding standards and includes appropriate tests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages