python-domain-events¶
Base classes for internal (in-process) domain events with tracing.
Installation¶
pip install python-domain-events
Public API¶
Class |
Purpose |
|---|---|
|
Pydantic base for domain events |
|
Handler interface with |
|
Dispatches events to registered handlers |
Usage¶
from python_domain_events import BaseDomainEvent, IDomainEventHandler
from python_domain_events import InProcessEventDispatcher
class UserCreated(BaseDomainEvent):
event_type: str = "user_created"
user_id: int
class NotifyHandler(IDomainEventHandler[UserCreated]):
def handle(self, event: UserCreated) -> None:
print(f"User {event.user_id} created")
dispatcher = InProcessEventDispatcher()
dispatcher.register(UserCreated, NotifyHandler())
dispatcher.dispatch(UserCreated(event_type="user_created", user_id=1))