Distributed Yet Minimal Event Sourcing
Dymes is a flexible, minimalist tool for message wrangling.
It can be used as a commit log, a source of commands, a sink for events, wherever one needs the ability to reliably store messages/events/commands and be able to query those by various attributes.
All this without having to set up and configure various supporting services.
Deploy via Helm chart into a Kubernetes cluster using minimal configuration, or using Podman/Docker compose for local development.
Install the required developer tooling, then:
zig build runzig build stressSee Hacking for information on developing Dymes, bearing in mind the Dymes Conventions.
Working.
- Standalone Node
- Exporter (backup)
- Importer (restore)
- Append messages using HTTP
- Query messages using HTTP
- Range queries
- Correlation queries
- Channel queries
- Result cursor traversal
In progress.
- Clustered Node
- Append messages using VSR
- VSR Wire Protocol
- VSR Transport (Zero MQ)
- VSR Messages
- VSR Operations
- VSR Client Proxy (internal)
- VSR State Machine
- VSR Request
- VSR Prepare
- VSR Prepare-OK
- VSR Commit
- VSR Start-View-Change
- VSR Do-View-Change
- VSR Start-View
- VSR Get-State
- VSR New-State
- HTTP redirect on view change
Dymes has a few dependencies on third-party libraries, which are all open source under OSI-approved licenses.