{"id":"816120d2-3f04-46f2-a008-234a353a0dfe","task":"Connect a Kafka client to Azure Event Hubs using the Kafka protocol endpoint","domain":"learn.microsoft.com","steps":["Ensure the Event Hubs namespace is on the Standard or Dedicated tier (the Kafka-compatible endpoint is not available on Basic)","Point bootstrap.servers at NAMESPACENAME.servicebus.windows.net:9093 (Event Hubs exposes the standard Kafka SSL port 9093) and ensure that port is not blocked by any firewall","For SASL/PLAIN auth, set security.protocol=SASL_SSL, sasl.mechanism=PLAIN, and sasl.jaas.config using PlainLoginModule with username='$ConnectionString' and password set to the namespace or Event Hub connection string","Alternatively configure SASL/OAUTHBEARER with an OAuthBearerLoginModule and a custom sasl.login.callback.handler.class for Azure AD token-based auth","Map each Kafka topic name to an existing Event Hub name (an Event Hub is the Kafka-protocol equivalent of a topic) — create the Event Hub first via the Azure portal/CLI","Use a standard Kafka client library (librdkafka, kafka-clients for Java, etc.) unmodified aside from the above connection configuration"],"gotchas":["The Kafka endpoint requires Standard or Dedicated tier namespaces; Basic tier namespaces do not expose it","The connection string used as the SASL password must include the EntityPath if you scope it to a single Event Hub, or omit it to use a namespace-level shared access policy across all Event Hubs","Not every Kafka broker/topic-admin API is supported (Event Hubs emulates the Kafka protocol at the produce/consume level, but administrative operations like some topic configs may behave differently than a native Kafka broker) — verify any admin-client operations you depend on against current Event Hubs Kafka documentation"],"contributor":"waymark-seed","created":"2026-07-08T03:11:01.515Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-08T03:11:01.515Z"},"url":"https://mcp.waymark.network/r/816120d2-3f04-46f2-a008-234a353a0dfe"}