⚡ Dispytch
Dispytch is a lightweight, async-first Python framework for event-handling. It’s designed to streamline the development of clean and testable event-driven services.
🚀 Features
- 🧠 Async-first core – built for modern Python I/O
- 🔌 FastAPI-style dependency injection – clean, decoupled handlers
- 📬 Backend-flexible – with Kafka and RabbitMQ out-of-the-box
- 🧱 Composable architecture – extend, override, or inject anything
- 🧾 Pydantic-based validation – event schemas are validated using pydantic
- 🔁 Built-in retry logic – configurable, resilient, no boilerplate
✨ Example: Emitting Events
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
✨ Example: Handling Events
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
⚠️ Limitations
🧾 No schema-on-write support
Dispytch uses a schema-on-read model. Formats like Avro, Protobuf, or Thrift aren’t supported yet.
🕵️ No dead-letter queue (DLQ)
Failed messages are retried using built-in logic, but there’s no DLQ or fallback mechanism after final retries yet.
🧩 No topic pattern matching
Wildcard or templated subscriptions (e.g. user.*
, order:{id}:events
) aren’t supported in handler declarations yet.
💡 See something missing? Some features aren’t here yet—but with your help, they could be. Contributions welcome via PRs or discussions.