Documentation Index
Fetch the complete documentation index at: https://abxbus.archivebox.io/llms.txt
Use this file to discover all available pages before exploring further.
EventHandler is the serializable metadata record for a registered handler function.
You receive handler entries from bus.on(...), can remove them with bus.off(...), and see them in handler-change middleware/hooks.
Common fields
id: stable handler id
handler_name: callable/function name
handler_file_path: source path metadata (str | None in Python, string | null in TypeScript)
handler_timeout: optional per-handler timeout override
handler_slow_timeout: optional slow-warning override
handler_registered_at
event_pattern: subscribed key (EventType or '*')
eventbus_name, eventbus_id
bus.on(...) and bus.off(...)
Python
TypeScript
Go
Rust
entry = bus.on(MyEvent, handler)
bus.off(MyEvent, entry)
const entry = bus.on(MyEvent, handler)
bus.off(MyEvent, entry)
entry := bus.On("MyEvent", "handler", handler, nil)
bus.Off("MyEvent", entry)
use abxbus_rust::{event, event_bus::EventBus};
use abxbus_rust::typed::EventSpec;
event! {
struct MyEvent {
event_result_type: serde_json::Value,
}
}
let bus = EventBus::new(Some("HandlerBus".to_string()));
let entry = bus.on(MyEvent, |_event: MyEvent| async move {
Ok(serde_json::Value::Null)
});
bus.off(MyEvent::event_type, Some(&entry.id));
Serialization
Python
TypeScript
Go
Rust
payload = entry.model_dump(mode='json', exclude={'handler'})
print(payload)
# {
# "id": "018f...",
# "handler_name": "app.handlers.on_user_created",
# "event_pattern": "UserCreatedEvent",
# "eventbus_name": "AuthBus",
# "eventbus_id": "018f...",
# "...": "..."
# }
restored = EventHandler.from_json_dict(payload, handler=real_handler)
const payload = entry.toJSON()
console.log(payload)
// {
// id: '018f...',
// handler_name: 'onUserCreated',
// event_pattern: 'UserCreatedEvent',
// eventbus_name: 'AuthBus',
// eventbus_id: '018f...',
// ...
// }
const restored = EventHandler.fromJSON(payload, realHandler)
payload, err := entry.ToJSON()
fmt.Println(string(payload))
// {
// "id": "018f...",
// "handler_name": "on_user_created",
// "event_pattern": "UserCreatedEvent",
// "eventbus_name": "AuthBus",
// "eventbus_id": "018f...",
// ...
// }
restored, err := abxbus.EventHandlerFromJSON(payload, realHandler)
let payload = entry.to_json_value();
println!("{}", serde_json::to_string_pretty(&payload)?);
// {
// "id": "018f...",
// "handler_name": "on_user_created",
// "event_pattern": "UserCreatedEvent",
// "eventbus_name": "AuthBus",
// "eventbus_id": "018f...",
// ...
// }
let restored = abxbus_rust::event_handler::EventHandler::from_json_value(payload);
Notes
- Function bodies are not serialized.
- Rehydration restores metadata; execution behavior requires re-binding a real callable.