Webinar + Demo: Change Data Capture and Data Products with Flink SQL | Register Now

Presentation

Real-time Customer Impact Calculation on a Telecom Scale Knowledge Graph

« Kafka Summit London 2024

As the leading telecom operator in Switzerland, we at Swisscom operate multiple networks with several different access technologies and virtualized network functions for millions of customers. With more than 300 million network elements, 150 billion telemetry data points and over 300 thousand changes per year, it is hard to maintain a customer centric end-to-end view.

Finding which customer is impacted by any low-level device alert or service degradation is already a challenging task. Combining root-cause analysis (historical data), real-time impact calculation for support agents and impact projection for change management in one system, adds additional complexity.

Our team solved this problem with a distributed knowledge graph built entirely on the Kafka stack. Our solution supports real-time graph traversal over hundreds of gigabytes and more than 200 million vertices of a labeled property graph. In this talk we would like to share how we leverage streaming SQL (ksqlDB) to map our input inventories, ticketing- and monitoring systems to encode an evolving graph on the log. Further, how we store the graph on Kafka topics to preserve the history and track the evolution and finally how we use Kafka Streams (KTables) to expose the graph over HTTP APIs. On top of standard graph operation APIs, our Pregel inspired computation framework is able to subscribe to live-data and propagate matched graph patterns as a stream to our support teams.

To conclude – we would like to share our journey from moving a standalone graph database to Kafka and enabling the business needs of end-to-end monitoring of customers in real-time and at scale.

Related Links

How Confluent Completes Apache Kafka eBook

Leverage a cloud-native service 10x better than Apache Kafka

Confluent Developer Center

Spend less on Kafka with Confluent, come see how