Skip to main content

Kafka Stream has been retired

The hosted Kafka stream was shut down in August 2026 and is no longer available. For real-time Farcaster events, use webhooks — they carry the same hydrated events this stream did. For bulk or historical data, use Parquet exports or the indexer service. Reach out on Slack if you need help migrating.This page is kept for historical reference. The brokers and topics below are no longer reachable.
The Kafka stream carried the same events that power our webhook notifications. Everything below describes how it worked while it was running, and is preserved so existing integrations have a reference for what they were consuming. The topics retained 14 days of data, so the stream was never suitable for building a database of Farcaster history from day 1 — it was paired with Parquet exports for backfill. P95 data latency was under 1.5s.

Why it existed

Hub gRPC streaming delivers dehydrated events that you have to reassemble yourself to make useful (see here for example). The Kafka stream delivered a fully hydrated event (e.g., user.created) that was usable immediately. The comparison between a gRPC hub event and a Kafka event is below. Webhooks deliver these same hydrated events and are the supported way to get them today.
Kafka stream

How it worked

The connection details, brokers and topics below are recorded as they were at shutdown. None of them accept connections any more.
  • Authentication used SASL/SCRAM SHA512.
  • The connection required TLS (sometimes called SSL for legacy reasons) for encryption.
  • farcaster-mainnet-events was the aggregated topic containing all events.
  • farcaster-mainnet-user-events carried user.created, user.updated and user.transferred
  • farcaster-mainnet-cast-events carried cast.created and cast.deleted
  • farcaster-mainnet-follow-events carried follow.created and follow.deleted
  • farcaster-mainnet-reaction-events carried reaction.created and reaction.deleted
  • farcaster-mainnet-signer-events carried signer.created and signer.deleted
Consumers could subscribe to any combination of the event-specific topics above, or to farcaster-mainnet-events to get everything in one topic. Three brokers were exposed over the Internet, and clients were given all three:
  • b-1-public.tfmskneynar.5vlahy.c11.kafka.us-east-1.amazonaws.com:9196
  • b-2-public.tfmskneynar.5vlahy.c11.kafka.us-east-1.amazonaws.com:9196
  • b-3-public.tfmskneynar.5vlahy.c11.kafka.us-east-1.amazonaws.com:9196
Most clients accept the brokers as a comma-separated list:
kcat (formerly kafkacat) was used to test connectivity locally:
Example output:
The topics listed varied depending on the credentials in use.

Consumer nodejs example

https://github.com/neynarxyz/farcaster-examples/tree/main/neynar-webhook-kafka-consumer

Data schema