The stream table duality in Kafka lets us look at our data in two different ways, whichever is more convenient for our use. But what about when the connections between the data points add much more value to our data? For this, we need to look at our data as a graph. Graphs help drive financial fraud investigations, social media analyses, network & IT management use cases, recommendation engines, and knowledge management. These are all cases where patterns of interaction in your data (for example, a pattern of structured financial transactions) matter more than the individual data points (a single transfer). We’ll cover how to easily transform Kafka streams or tables into graphs, and query them declaratively using Cypher or GraphQL. In graph shape, we can enrich our social network streams with powerful graph algorithms that tell us about user and event influence through graph centrality, then streaming results back to Kafka. Stream/table duality becomes the stream / table / graph trinity. We will demonstrate the trinity by: – Getting started with regular kafka streams, – Using confluent hub’s Neo4j sink – Exposing query-able graphs with Cypher & GraphQL – Analyzing data with Neo4j’s graph algorithms – Transforming graphs back into streams The trinity means not choosing between representations, but using the best one for your use case. We’ll demonstrate how it can be used to tackle social network analysis problems and discuss how the approach can be extended to real-time financial fraud detection and more.