Umbral Signals
Official by Umbral contributorsmodel lifecycle hooks, named events, async subscribers
About
Some reactions don't belong in the code that triggers them. When an order is placed you might want to bust a cache, write an audit line, and ping a channel — but none of that should clutter the "save the order" path. Umbral Signals lets you hang behaviour off events without touching the write code: subscribe to pre/post save/update/delete, or emit your own named events, and react elsewhere. Handlers run outside the registry lock, so a slow subscriber can't throttle every write.
Install
Wire it up
use *;
use SignalsPlugin;
let app = builder
.database
.plugin
.build?;
Target: react to a domain event
Emit a named event where it happens; subscribe wherever the reaction lives.
use ;
// at startup:
subscribe_async;
// in the handler:
emit.await;
For work that must survive a crash, have the handler enqueue an umbral-tasks job.
What you get
- Pre/post save/update/delete model lifecycle signals
- Emit and subscribe to your own named events
- Handlers run outside the registry lock — slow ones don't block writes
#[umbral(signal_skip)]keeps secrets / PII out of the payload- Pair with umbral-tasks for durable, crash-safe reactions
Usage
Register `SignalsPlugin` and, at startup, `subscribe_async("event", handler)`; emit with `emit("event", json).await` or let the ORM's post_save/update/delete signals fire automatically. Signals are in-process — pair with umbral-tasks when a reaction must survive a crash.
cargo add umbral-signals
Feature tracker
Per-feature shipping status, recorded in the directory.
Pre/post save, update, and delete hooks from the ORM.
Emit custom domain events from any handler.
Register async handlers without blocking the registry lock.
#[umbral(signal_skip)] keeps secrets out of emitted payloads.
Bulk relation paths avoid panics during signal dispatch.
Compatibility
Declared support per Umbral version and database backend.
No compatibility rows declared yet.
Community notes
0 notes in the discussion thread.
No notes yet. Be the first to share how this plugin works for you.
Reported issues
Bugs and abuse reports filed against this plugin.
No open issues
No issues have been reported against this plugin. Track upstream bugs on the maintainer's tracker, or report a directory problem to the Umbral team.