Kafka Events

AsyncAPI documentation for search-svc event-driven architecture. 4 produced + 8 consumed topics.

CloudEvents 1.0

All Kafka messages follow the CloudEvents specification v1.0. Partition key is always tenant_id.

Produced Events (4)

Events emitted by search-svc to downstream consumers.

TopicEventDescription
eventzr.search.analytics.v1SearchExecutedEventSearch query execution analytics (query, results, timing, AI credits)
eventzr.search.alert.triggered.v1AlertTriggeredEventSaved search alert triggered when new matching results found
eventzr.search.slow-query.v1SlowQueryEventSlow query warning when execution exceeds threshold
eventzr.search.autocomplete.v1AutocompleteInteractionEventUser autocomplete suggestion selection tracking

Consumed Events (8)

Events consumed by search-svc to keep indices in sync.

TopicSourceAction
eventzr.event.created.v1event-svcIndex new event in OpenSearch
eventzr.event.updated.v1event-svcUpdate event document in index
eventzr.venue.created.v1venue-svcIndex new venue in OpenSearch
eventzr.venue.updated.v1venue-svcUpdate venue document in index
eventzr.artist.created.v1talent-svcIndex new artist in OpenSearch
eventzr.brand.created.v1brand-svcIndex new brand in OpenSearch
eventzr.destination.created.v1destination-svcIndex new destination in OpenSearch
eventzr.subscription.changed.v1subscriptions-svcUpdate rate limits and quotas for tenant

CloudEvents Envelope

Example produced eventjson
{
  "specversion": "1.0",
  "type": "eventzr.search.analytics.v1",
  "source": "search-svc",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "time": "2026-02-24T10:30:00Z",
  "datacontenttype": "application/json",
  "subject": "tenant/a0000001-0000-0000-0000-000000000001",
  "data": {
    "query": "music festival",
    "entity_type": "event",
    "results_count": 42,
    "execution_time_ms": 125,
    "search_type": "hybrid",
    "ai_credits_consumed": 2,
    "tenant_id": "a0000001-0000-0000-0000-000000000001",
    "user_id": "user-uuid"
  }
}