Kafka is not suitable to build a database with all of the data from Farcaster day 1. Our kafka topics currently keep data for 14 days. It’s a good solution for streaming recent data in real time (P95 data latency of <1.5s).
If you’re using Hub gRPC streaming, you’re getting dehydrated events that you have to put together yourself later to make useful (see here for example). With Neynar’s Kafka stream, you get a fully hydrated event (e.g., user.created) that you can use in your app/product immediately. See the example between the gRPC hub event and the Kafka event below.
// _when a new user is created on the network_interfaceBio{ text:string;}interfaceProfile{ bio: Bio;}interfaceVerifiedAddresses{ eth_addresses:string[]; sol_addresses:string[];}interfaceUserCreatedData{ object:"user"; fid:number; custody_address:string; username:string; display_name:string|null; pfp_url:string|null; profile: Profile; follower_count:number; following_count:number; verifications:string[]; verified_addresses: VerifiedAddresses; active_status:"inactive"|"active"; power_badge:boolean; event_timestamp:string;// ISO 8601 format}interfaceCustomHeaders{"x-convoy-message-type":"broadcast";}interfaceUserCreatedEvent{ event_type:"user.created"; data: UserCreatedData; custom_headers: CustomHeaders; idempotency_key?:string;}