SlideShare a Scribd company logo
1 of 26
Eventing Things -
A Netflix Original!
Nitin Sharma
Let’s Warm up- Netflix Trivia!
Speaker Info
● Nitin Sharma, Content Finance Infrastructure @ Netflix
● Decade of work on Large Scale Distributed Systems
● Storage, Search, Messaging, Stream Processing, ML Infrastructure
How does Netflix make content?
LaunchProductionCreativeForecast Program Deals Post Production Financial
Reporting
Content Finance Infrastructure
Content Finance Infrastructure is at the Heart of
Netflix Studio.
We enable innovation for how content is
financially planned, produced and accounted for.
Music
Accounting
Content
Programming
Content
Payments &
Accounting
Production
Budgeting
Talent
Payments
Content
Forecasting
(cash & expense)
Production
Cost Reporting
Production
Cashflow
Content Forecasting &
Programming(CF)
Production Finance
Content Accounting (CA)
Content Finance Infrastructure
Production Finance ensures our productions are
financially healthy.
Cashflow Payment Cost ReportBudget
Estimated cost? How much do we
need on an
ongoing basis?
Talent Payments Snapshot of costs
Production Finance needs data from many other
services in the Studio Ecosystem.
Cashflow
Payment
Schedule
Productions
Talent
Synchronous communication cannot withstand
failures.
Productions
Schedule
Cost Report
Cashflow
{launch date}
{episodes} {Cashflow}
Adding new dependencies is non trivial and error
prone
Productions
Cost Report
Schedule
Payments
Cashflow
{episodes}
{launch date}
{Cashflow}
Request driven change communication causes
chaos.
● Request Driven Communication
○ Synchronous
○ Complex workflows
● Traceability
○ Source & metadata
● Uniformity
○ Is state consistent across the universe?
○ Non uniform reconciliation strategy
○ Duplicate work
Eventing-centric is better than Request-centric
message exchanges.
● The LOG - Canonical stream of facts
● Decoupling
● Data change or trigger
● Traceability
The Kafka ecosystem at Netflix enables teams to
easily embrace eventing.
● Paved Path
● Kafka + Flink - Stream Processing as a Service
● Fault tolerant and Multi-Region
● Observability out of the box
● Easy bootstrapping event listeners
Kafka is at the heart of the Netflix Studio Message
Bus.
Producers Data cleansing Stream Processing Consumers
We can easily produce events.
○ Event data & metadata
○ Normalized schema
■ Id of the entity , UUID, ts, type
● (optional) payload
■ Standard across producers
○ Publisher Client
○ Event Sources
■ Application/Services
■ CDC Events (Source -> Sink)
Producers
Normalized Schema
Kafka Client
Producer Event Stream
We can process and order events.
○ Input:
■ Kafka - Multiple input stream
■ Unordered
○ Processing:
■ Flink
○ Output:
■ Ordered & Keyed Kafka
Stream
■ Search Index
Unordered Producer Event Streams
Ordered & Enriched Streams
We enrich, flatten, and order entities.
○ Delayed Materialization
■ Circumvent ordering issues
○ Filter, Transform & Window
○ Enrich
■ F(Id, Entity) -> LatestState
■ Call Entity API for that Id
○ Config driven
○ Keyed Kafka
■ Partition Key
■ Order within partition
Enrich
Ordered & Enriched Streams
<id>
Payload
We can easily consume events.
○ Spring Boot 2
○ Spring cloud kafka connector
○ Stream Name
■ Entity -> Stream name
○ At Least Once
■ Idempotent
○ Offset
■ Default vs latest vs earliest
Schema Registry helps us discover schema per
entity.
● Streams & Schema
○ Avro Schema <> Kafka Topics
○ Schema Registry
○ Versioning
○ Backward compatibility
Schema Registry
Streams
&
Schema
Discovery
findByStream() findBySchema()
● Schema discovery (future looking)
○ Search by schema
○ Search by topic
What if I want to add a new stream?
● Integrate new producer
● Add enricher in the stream
processing
● Add a sink
● Announce schema in registry
Enrich
Flatmap
Ordered & Enriched Streams
Eventing is the communication mechanism in
Netflix Studio Finance Ecosystem.
Schema RegistryProductions
Payments
Capitalization Cashflow
Schedule
Full Entity
State
Failure detection and recovery is a first class
citizen in design
Productions
Cashflow
Schedule
Full Entity
State
Live
Backfill
Slow
How do I know who has/hasn’t consumed what
data?
Schedule
Payment
Forecast
Watchdog
● Has an event made it through the
entire system? (Unified view)
● Has an event been consumed?
○ Offset Monitoring & Alerting
● Recon events
○ Kappa
○ Replay all events through
Streaming
Define Performance SLA based on Operational
Insights.
○ Freshness SLA
■ Message Consumption Lag
○ Max Transfer Rate
■ Payload size - Compress
■ Message rate - Source, process,
sink
○ Partitioning & Parallelism
○ Message Retention
○ X-Region Replication SLA
Highly Aligned; Loosely coupled.
Request Driven Eventing
Decoupling
Traceability
Consistency
Uniform Reconciliation
Channels of
communication
Producers * Consumers Producers + Consumers
We are
hiring!
https://www.linkedin.com/in/knitinsharma/
Nitin Sharma

More Related Content

What's hot

What's hot (20)

Microservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka EcosystemMicroservices in the Apache Kafka Ecosystem
Microservices in the Apache Kafka Ecosystem
 
Apache kafka
Apache kafkaApache kafka
Apache kafka
 
Introduction to Kafka connect
Introduction to Kafka connectIntroduction to Kafka connect
Introduction to Kafka connect
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
Kafka presentation
Kafka presentationKafka presentation
Kafka presentation
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Stream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETStream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NET
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
 
Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
 
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
Architecture patterns for distributed, hybrid, edge and global Apache Kafka d...
 
ksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database SystemksqlDB: A Stream-Relational Database System
ksqlDB: A Stream-Relational Database System
 
Benefits of Stream Processing and Apache Kafka Use Cases
Benefits of Stream Processing and Apache Kafka Use CasesBenefits of Stream Processing and Apache Kafka Use Cases
Benefits of Stream Processing and Apache Kafka Use Cases
 
Uber Real Time Data Analytics
Uber Real Time Data AnalyticsUber Real Time Data Analytics
Uber Real Time Data Analytics
 
Real-time Twitter Sentiment Analysis and Image Recognition with Apache NiFi
Real-time Twitter Sentiment Analysis and Image Recognition with Apache NiFiReal-time Twitter Sentiment Analysis and Image Recognition with Apache NiFi
Real-time Twitter Sentiment Analysis and Image Recognition with Apache NiFi
 
Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3
 
Disaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache KafkaDisaster Recovery Plans for Apache Kafka
Disaster Recovery Plans for Apache Kafka
 

Similar to Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF 2019

Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Timothy Spann
 

Similar to Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF 2019 (20)

Money Heist - A Stream Processing Original! | Meha Pandey and Shengze Yu, Net...
Money Heist - A Stream Processing Original! | Meha Pandey and Shengze Yu, Net...Money Heist - A Stream Processing Original! | Meha Pandey and Shengze Yu, Net...
Money Heist - A Stream Processing Original! | Meha Pandey and Shengze Yu, Net...
 
[Meetup ms] Kafka Streams
[Meetup ms] Kafka Streams[Meetup ms] Kafka Streams
[Meetup ms] Kafka Streams
 
Using Event Streams in Serverless Applications
Using Event Streams in Serverless ApplicationsUsing Event Streams in Serverless Applications
Using Event Streams in Serverless Applications
 
Apache Flink 101 - the rise of stream processing and beyond
Apache Flink 101 - the rise of stream processing and beyondApache Flink 101 - the rise of stream processing and beyond
Apache Flink 101 - the rise of stream processing and beyond
 
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
"Fintech inside of a SaaS powered by 2000+ Microservices", Volodymyr Malyk
 
Introduction to Spark Streaming & Apache Kafka | Big Data Hadoop Spark Tutori...
Introduction to Spark Streaming & Apache Kafka | Big Data Hadoop Spark Tutori...Introduction to Spark Streaming & Apache Kafka | Big Data Hadoop Spark Tutori...
Introduction to Spark Streaming & Apache Kafka | Big Data Hadoop Spark Tutori...
 
Growing into a proactive Data Platform
Growing into a proactive Data PlatformGrowing into a proactive Data Platform
Growing into a proactive Data Platform
 
Kafka Summit NYC 2017 - Building Advanced Streaming Applications using the La...
Kafka Summit NYC 2017 - Building Advanced Streaming Applications using the La...Kafka Summit NYC 2017 - Building Advanced Streaming Applications using the La...
Kafka Summit NYC 2017 - Building Advanced Streaming Applications using the La...
 
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
Designing Event-Driven Applications with Apache NiFi, Apache Flink, Apache Sp...
 
Apache Flink Adoption at Shopify
Apache Flink Adoption at ShopifyApache Flink Adoption at Shopify
Apache Flink Adoption at Shopify
 
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's ScalePinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
 
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
Apache Kafka as Event-Driven Open Source Streaming Platform (Prague Meetup)
 
Structured Streaming in Spark
Structured Streaming in SparkStructured Streaming in Spark
Structured Streaming in Spark
 
Towards Apache Flink 2.0 - Unified Data Processing and Beyond, Bowen Li
Towards Apache Flink 2.0 - Unified Data Processing and Beyond, Bowen LiTowards Apache Flink 2.0 - Unified Data Processing and Beyond, Bowen Li
Towards Apache Flink 2.0 - Unified Data Processing and Beyond, Bowen Li
 
Designing the Next Generation of Data Pipelines at Zillow with Apache Spark
Designing the Next Generation of Data Pipelines at Zillow with Apache SparkDesigning the Next Generation of Data Pipelines at Zillow with Apache Spark
Designing the Next Generation of Data Pipelines at Zillow with Apache Spark
 
How Netflix Directs 1/3rd of Internet Traffic
How Netflix Directs 1/3rd of Internet TrafficHow Netflix Directs 1/3rd of Internet Traffic
How Netflix Directs 1/3rd of Internet Traffic
 
How Totango uses Apache Spark
How Totango uses Apache SparkHow Totango uses Apache Spark
How Totango uses Apache Spark
 
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
Spark + AI Summit 2019: Apache Spark Listeners: A Crash Course in Fast, Easy ...
 
Apache Spark Listeners: A Crash Course in Fast, Easy Monitoring
Apache Spark Listeners: A Crash Course in Fast, Easy MonitoringApache Spark Listeners: A Crash Course in Fast, Easy Monitoring
Apache Spark Listeners: A Crash Course in Fast, Easy Monitoring
 
FLiP Into Trino
FLiP Into TrinoFLiP Into Trino
FLiP Into Trino
 

More from confluent

More from confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Eventing Things - A Netflix Original! (Nitin Sharma, Netflix) Kafka Summit SF 2019

  • 1. Eventing Things - A Netflix Original! Nitin Sharma
  • 2. Let’s Warm up- Netflix Trivia!
  • 3. Speaker Info ● Nitin Sharma, Content Finance Infrastructure @ Netflix ● Decade of work on Large Scale Distributed Systems ● Storage, Search, Messaging, Stream Processing, ML Infrastructure
  • 4. How does Netflix make content? LaunchProductionCreativeForecast Program Deals Post Production Financial Reporting Content Finance Infrastructure
  • 5. Content Finance Infrastructure is at the Heart of Netflix Studio.
  • 6. We enable innovation for how content is financially planned, produced and accounted for. Music Accounting Content Programming Content Payments & Accounting Production Budgeting Talent Payments Content Forecasting (cash & expense) Production Cost Reporting Production Cashflow Content Forecasting & Programming(CF) Production Finance Content Accounting (CA) Content Finance Infrastructure
  • 7. Production Finance ensures our productions are financially healthy. Cashflow Payment Cost ReportBudget Estimated cost? How much do we need on an ongoing basis? Talent Payments Snapshot of costs
  • 8. Production Finance needs data from many other services in the Studio Ecosystem. Cashflow Payment Schedule Productions Talent
  • 9. Synchronous communication cannot withstand failures. Productions Schedule Cost Report Cashflow {launch date} {episodes} {Cashflow}
  • 10. Adding new dependencies is non trivial and error prone Productions Cost Report Schedule Payments Cashflow {episodes} {launch date} {Cashflow}
  • 11. Request driven change communication causes chaos. ● Request Driven Communication ○ Synchronous ○ Complex workflows ● Traceability ○ Source & metadata ● Uniformity ○ Is state consistent across the universe? ○ Non uniform reconciliation strategy ○ Duplicate work
  • 12. Eventing-centric is better than Request-centric message exchanges. ● The LOG - Canonical stream of facts ● Decoupling ● Data change or trigger ● Traceability
  • 13. The Kafka ecosystem at Netflix enables teams to easily embrace eventing. ● Paved Path ● Kafka + Flink - Stream Processing as a Service ● Fault tolerant and Multi-Region ● Observability out of the box ● Easy bootstrapping event listeners
  • 14. Kafka is at the heart of the Netflix Studio Message Bus. Producers Data cleansing Stream Processing Consumers
  • 15. We can easily produce events. ○ Event data & metadata ○ Normalized schema ■ Id of the entity , UUID, ts, type ● (optional) payload ■ Standard across producers ○ Publisher Client ○ Event Sources ■ Application/Services ■ CDC Events (Source -> Sink) Producers Normalized Schema Kafka Client Producer Event Stream
  • 16. We can process and order events. ○ Input: ■ Kafka - Multiple input stream ■ Unordered ○ Processing: ■ Flink ○ Output: ■ Ordered & Keyed Kafka Stream ■ Search Index Unordered Producer Event Streams Ordered & Enriched Streams
  • 17. We enrich, flatten, and order entities. ○ Delayed Materialization ■ Circumvent ordering issues ○ Filter, Transform & Window ○ Enrich ■ F(Id, Entity) -> LatestState ■ Call Entity API for that Id ○ Config driven ○ Keyed Kafka ■ Partition Key ■ Order within partition Enrich Ordered & Enriched Streams <id> Payload
  • 18. We can easily consume events. ○ Spring Boot 2 ○ Spring cloud kafka connector ○ Stream Name ■ Entity -> Stream name ○ At Least Once ■ Idempotent ○ Offset ■ Default vs latest vs earliest
  • 19. Schema Registry helps us discover schema per entity. ● Streams & Schema ○ Avro Schema <> Kafka Topics ○ Schema Registry ○ Versioning ○ Backward compatibility Schema Registry Streams & Schema Discovery findByStream() findBySchema() ● Schema discovery (future looking) ○ Search by schema ○ Search by topic
  • 20. What if I want to add a new stream? ● Integrate new producer ● Add enricher in the stream processing ● Add a sink ● Announce schema in registry Enrich Flatmap Ordered & Enriched Streams
  • 21. Eventing is the communication mechanism in Netflix Studio Finance Ecosystem. Schema RegistryProductions Payments Capitalization Cashflow Schedule Full Entity State
  • 22. Failure detection and recovery is a first class citizen in design Productions Cashflow Schedule Full Entity State Live Backfill Slow
  • 23. How do I know who has/hasn’t consumed what data? Schedule Payment Forecast Watchdog ● Has an event made it through the entire system? (Unified view) ● Has an event been consumed? ○ Offset Monitoring & Alerting ● Recon events ○ Kappa ○ Replay all events through Streaming
  • 24. Define Performance SLA based on Operational Insights. ○ Freshness SLA ■ Message Consumption Lag ○ Max Transfer Rate ■ Payload size - Compress ■ Message rate - Source, process, sink ○ Partitioning & Parallelism ○ Message Retention ○ X-Region Replication SLA
  • 25. Highly Aligned; Loosely coupled. Request Driven Eventing Decoupling Traceability Consistency Uniform Reconciliation Channels of communication Producers * Consumers Producers + Consumers