bloodbank-event-system
Bloodbank Event System
Bloodbank is the event bus for the 33GOD ecosystem. It allows different systems to communicate with each other in an event-driven manner. It's designed to facilitate loose coupling between services, enabling scalability and flexibility.
Architecture
- Each component in the pipeline is responsible for defining its own payload using Pydantic2 and adding the definitions to Bloodbank.
- Each event consists of a payload with optional metadata. The payload is wrapped in a common envelope that includes metadata such as event type, timestamp, and source.
- RabbitMQ is used as the event bus. It handles the routing of events between producers and consumers.
- Events are immutable messages that let us know something has happened in the system. Their key always follow the pattern
<eventType>.<entity>.<past-tense-action>, for example,github.pr.created. - Events that result in a mutation are Command events. Unlike basic events, they have their own exchange and are bound to the appropriate worker queue(s). Command events follow the naming convention
<eventType>.<entity>.<action>, for example,github.pr.merge.
Infrastructure
RabbitMQ is used as the event bus. It is
Event Inventory
The number of events in the system is always growing as new features and integrations are added. You can get a complete list of events and their payload definitions by running the Bloodbank CLI command:
More from delorenj/skills
agno
Agno AI agent framework. Use for building multi-agent systems, AgentOS runtime, MCP server integration, and agentic AI development.
152fal-text-to-image
Generate, remix, and edit images using fal.ai's AI models. Supports text-to-image generation, image-to-image remixing, and targeted inpainting/editing.
134blog-writing
Use this skill whenever tasked with creating, editing or proofreading a blog article. This skill helps map specific patterns or structures to alternatives that are more fine-tuned to my writing style.
22tauri
Tauri framework for building cross-platform desktop and mobile apps. Use for desktop app development, native integrations, Rust backend, and web-based UIs.
19emergency-ulimit-mitigation
Emergency steps to mitigate ulimit-related crashes by increasing file descriptor limits and restarting services.
17zellij-plugin-dev
Develop Zellij plugins with Rust/WASM, API reference, event system, UI rendering, plugin lifecycle, and real-world examples from diverse open source plugins
14