Streamer class

class kafkastreamer.Streamer(**kwargs: Any)[source]

This class encapsulates all streaming logic related to a particular Django model class

topic: str | None = None

Kafka topic to stream data.

exclude: Sequence[str] | None = None

Data fields to exclude.

include: Sequence[str] | None = None

List of extra (related, computed) fields to include.

static_fields: dict[str, Any] | None = None

Static data to include in every message.

List of related fields to select in queryset.

List of related fields to prefetch in queryset.

List of related fields to handle changes.

batch_class

alias of Batch

refresh_finalize_type: RefreshFinalizeType = 'enumerate'

Which message type to use at the end when doing a full refresh (enumerate or EOS).

id_field: str = 'id'

Field name of object ID.

enumerate_ids_field: str = 'ids'

Field name for list of object IDs in enumerate message.

enumerate_chunk_field: str = 'chunk'

Field name for chunk in enumerate message.

enumerate_chunk_size: int = 5000

Chunk size in enumerate message.

batch_size: int | None = None

Number of records in batch.

message_serializer: Callable[[...], bytes] | None = None

Serializer function for message serialization. See KafkaProducer documentation for details.

partition_key_serializer: Callable[[...], bytes] | None = None

Partition key serializer function. See KafkaProducer documentation for details.

partitioner: Callable[[bytes, list[int], list[int]], int] | None = None

Partitioner function. See KafkaProducer documentation for details.