KafkaEventPublisher

class safir.metrics.KafkaEventPublisher(*, application, manager, event_class, publisher, schema_info)

Bases: EventPublisher, Generic[P]

Publishes one type of event.

You shouldn’t need to instantiate instances of this class yourself. Instead, call create_publisher. This object wraps a FastStream publisher, schema information, and the underlying event manager that will be used to publish events.

Parameters:
  • application (str) – Name of the application publishing events.

  • manager (KafkaEventManager) – The EventManager that will actually publish the event to Kafka

  • event_class (type[TypeVar(P, bound= EventPayload)]) – An AvroBaseModel with the fields from the payload, EventMetadata, and an inner Meta class with additional schema configuration.

  • publisher (AsyncAPIDefaultPublisher) – FastStream publisher to use to publish the event to Kafka. This contains Kafka metadata, like the topic to publish to.

  • schema_info (SchemaInfo) – Confluent schema information for this event type.

Methods Summary

publish(payload)

Publish an event payload.

Methods Documentation

async publish(payload)

Publish an event payload.

Parameters:

payload (TypeVar(P, bound= EventPayload)) – Payload to publish.

Returns:

Full, enriched-with-metadata event model that was published. This will be an object of a class derived from both the type of the payload and EventMetadata, but it is typed as the latter since that is the newly-added information that may be of interest to the caller and therefore the most likely to be accessed.

Return type:

EventMetadata