Skip to content

daggerok/drestore

Repository files navigation

DREStore CI

daggerok Reactor RSocket EventStore

Please ignore that creepy shit for now. Thanks!

logo

Status: IN PROGRESS / INCUBATING

TODO

1. Event Scheduler
------------------
-> incomming event
   -> commands/${cmdSeq}-${eventMetadata} file with event metadata body created
# valid command sent / handling and event

2. Event Processor
------------------
-> event data from commands/${cmdSeq}-${eventMetadata} file read and event appended to event-log
   -> events/${evtSeq}-${eventType}-${eventAggId} file with event body created
      -> commands/${cmdSeq}-${eventMetadata} file removed
# event persisted

3. Event Handler
----------------
-> events/${evtSeq}-${eventType}-${eventAggId} file read with event metadata
   -> emit event if target subscribers found or create notify/... file
      -> events/${evtSeq}-${eventType}-${eventAggId} file removed
# subscribers notified

Connectors

  • rsocket / message-broker flux message emitted / consumed
  • websocket message sent / received
  • rest api called / sse event received
  • file created, written / read, removed

Functionality

  • Concepts
  • Simple reactive data processing
  • Plugable architecture
  • File system as default storage
  • Append Only
  • Data consumption
  • Automatic snapshotting
  • Split event log per immutable data blocks
  • Metadata and binary search for time travel
  • Interfaces

Resources