daggerok Reactor RSocket EventStore
Please ignore that creepy shit for now. Thanks!
Status: IN PROGRESS / INCUBATING
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
- rsocket / message-broker flux message emitted / consumed
- websocket message sent / received
- rest api called / sse event received
- file created, written / read, removed
- 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