-
Notifications
You must be signed in to change notification settings - Fork 0
Home
A reactive event bus for C# that tracks causality.
rzeka ("river" in Polish) is a single-threaded event bus built on Rx.NET. Components yeet typed events into the river and act on the events flowing through it, without holding references to each other.
What makes rzeka different from a typical event bus is causality tracking: every event carries a record of the events that caused it.
You can ask any event β o little rabbit! where did you come from? β and get its full casual chain β what fox's chasing glare or carrots allure.
Thanks to Eris (rzeka's built-in debugger) you can read the entire story of what's happening in your system β real-time, in a browser, while your game runs (both in a game engine and in a build!).
intro_to_rzeka_debugger.mp4
πβοΈ rzeka is single-threaded by design. This is the constraint that makes everything else possible: it guarantees that circumstance tracking, mana transitions, and spell lifecycle are always consistent. Async operations are handled within defined boundaries β see Async Operations.
Status: rzeka was originally built for sanctuary, a 3D journaling software shipped on Unity. It is currently being refactored alongside sanctuary's port to Godot. The core API is stable. Eris UI is actively evolving.