Skip to content

dymes-io/dymes

Repository files navigation

Dymes

Distributed Yet Minimal Event Sourcing

Overview

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.

Quickstart (Building and running a Dymes node)

Install the required developer tooling, then:

Build and run a Dymes node locally

zig build run

Run the Dymes stress client

zig build stress

Developing

See Hacking for information on developing Dymes, bearing in mind the Dymes Conventions.

Roadmap

Standalone

Working.

  • Standalone Node
  • Exporter (backup)
  • Importer (restore)
  • Append messages using HTTP
  • Query messages using HTTP
    • Range queries
    • Correlation queries
    • Channel queries
  • Result cursor traversal

Clustered

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

Dependencies

Dymes has a few dependencies on third-party libraries, which are all open source under OSI-approved licenses.

About

Distributed Yet Minimal Event Sourcing

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages