app

class mersal.app.Mersal

Bases: object

__init__(name: str, handler_activator: HandlerActivator, transport: Transport | None = None, pipeline_invoker: PipelineInvoker | None = None, router: Router | None = None, worker_factory: WorkerFactory | None = None, subscription_storage: SubscriptionStorage | None = None, topic_name_convention: TopicNameConvention | None = None, on_startup_hooks: Sequence[Callable[[], Any | Awaitable[Any]]] | None = None, on_shutdown_hooks: Sequence[Callable[[], Any | Awaitable[Any]]] | None = None, retry_strategy_settings: RetryStrategySettings | None = None, error_tracker: ErrorTracker | None = None, error_handler: ErrorHandler | None = None, fail_fast_checker: FailFastChecker | None = None, fail_fast_exceptions: Sequence[type[Exception]] | None = None, plugins: Sequence[Plugin] | None = None, idempotency: IdempotencyConfig | None = None, saga: SagaConfig | type[Empty] | None = None, serializer: Serializer | None = None, message_body_serializer: Serializer | None = None, message_headers_serializer: Serializer | None = None, default_router_registration: DefaultRouterRegistrationConfig | None = None, autosubscribe: AutosubscribeConfig | type[Empty] | None = None, unit_of_work: UnitOfWorkConfig | None = None, outbox: OutboxConfig | None = None, pdb_on_exception: bool | None = None, message_id_generator: MessageIdGenerator | None = None)

Initializes the Mersal app.

Parameters:
  • name – name of Mersal app, useful in logging.

  • autosubscribe – configuration for the autosubcription plugin.

  • handler_activator – HandlerActivator,

  • transport – Transport | None = None,

  • pipeline_invoker – PipelineInvoker | None = None,

  • router – Router | None = None,

  • worker_factory – WorkerFactory | None = None,

  • subscription_storage – SubscriptionStorage | None = None,

  • topic_name_convention – TopicNameConvention | None = None,

  • on_startup_hooks – Sequence[LifespanHook] | None = None,

  • on_shutdown_hooks – Sequence[LifespanHook] | None = None,

  • retry_strategy_settings – RetryStrategySettings | None = None,

  • error_tracker – ErrorTracker | None = None,

  • error_handler – ErrorHandler | None = None,

  • fail_fast_checker – FailFastChecker | None = None,

  • fail_fast_exceptions – Sequence[type[Exception]] | None = None,

  • plugins – Sequence[Plugin] | None = None,

  • idempotency – IdempotencyConfig | None = None,

  • saga – SagaConfig | EmptyType | None = None,

  • serializer – Serializer | None = None,

  • message_body_serializer – MessageBodySerializer | None = None,

  • message_headers_serializer – MessageHeadersSerializer | None = None,

  • default_router_registration – DefaultRouterRegistrationConfig | None = None,

  • unit_of_work – UnitOfWorkConfig | None = None,

  • outbox – OutboxConfig | None = None,

  • pdb_on_exception – bool | None = None,

  • message_id_generator – MessageIdGenerator | None = None,

async publish(event_message: Any, headers: Mapping[str, Any] | None = None) None

Publish an event with optional headers.

async send(command_message: Any, headers: Mapping[str, Any] | None = None) None

Send a message to an address obtained from the configured router.

async send_local(command_message: Any, headers: Mapping[str, Any] | None = None) None

Send a message to the address of the configured transport.

async subscribe(event_type: type) None

Subscribe to the passed event type.