SlideShare a Scribd company logo
Company/speaker
Presentation title
#teqnation2021
CO-SPONSORS
MAIN SPONSOR
Why and when should we consider
Stream Processing
in our solutions
Soroosh Khodami
May 17 2023 @ Teqnation
Agenda
What is Stream Processing?
Frameworks & Platforms
Basic Concepts & Patterns
Demo Time
Benefits & Drawbacks + Considerations
Use Cases For Different Industries
How to start ?
This Talk is For
Software Developers
Tech Leads / Software Architects
Data Engineers / Data Scientist / AI Engineers
Product Owners / Product Managers / Business Analysts
$ whoami
 I’m Soroosh Khodami
 Full-Stack Developer at Bol.com & Code Nomads
 Working with Stream Processing at Scale in Bol.com
 Software Architecture Enthusiastic
@SorooshKh linkedin.com/in/sorooshkhodami/
Slides & Code Repository Link Will Be Shared At The End
Why And When Should We Consider Stream Processing In Our Solutions Teqnation 2023
RIGHT TOOL
FOR THE JOB
What is Stream Processing?
Event Processing?
Event Driven?
Ref: https://en.wikipedia.org/wiki/Stream_processing
Wikipedia Definition
Stream (Data) Processing
Stream processing is a big data technique that focuses on
continuously reading data, processing the data individually
or joining it with related data sets in real-time or near real-
time, and then sending the output to other applications,
data-stores, or systems.
Event Processing
Trigger Actions
Decision Making
Event
Payment Received
Event Driven Architecture
Stream Processing
Frameworks & Platforms
Stream Processing Universe
2023
Stream Processing Universe
2023
Code will be executed on a Runner Standalone / Alongside other frameworks
Stream Processing Universe
2023
Cloud Platforms
Hardened at Scale
Powered By Flink https://flink.apache.org/powered-by/
+ Examples
Stream Processing
Basic Concepts & Patterns
Bounded Stream / Unbounded Stream
Time
Now
Past Future
Unbounded Stream
Bounded Stream #1
Start End
Time
Now
Past Future
Bounded Stream #2
Start End
Event Time & Processing Time
Processing
Time
Event Time
1
Login
1 2 3 4 5 6 7
2
Search
3
View
4
View
5
View
6
Play
1
Login
2
Search
3
View
4
View
5
View
6
Play
1 2 3 4 5 6 7
Delivery Guarantees
Learn More (Important)
Streaming Concepts - Exactly Once Fault Tolerance Guarantees youtube.com/watch?v=9pRsewtSPkQ
Rundown of Flink's Checkpoints - youtube.com/watch?v=hoLeQjoGBkQ
Understanding exactly-once processing and windowing in streaming pipelines - youtube.com/watch?v=DraQGkARegE
At Most Once
At Least Once
Exactly Once
Messages can be lost, but never duplicated (Fire & Forget)
Messages can be duplicated
Messages are delivered & processed exactly once
IoT Farm
Context
 +1000 Sensors
 Multiple Sensors per location
 Not reliable internet connection
 Large amount of continious sensors data
Requirements
 Aggregated Sensors Data Per Location
 Correct Order Of Data
 No Duplicates
Read Source
Operators & Transform
Transforms Sink
Operator(s) Operator(s) Operator(s)
Basic Building Blocks
Read Soil Moisture Sensors
Operators & Transform
Sink
IOT Farm Example
Operator(s)
Operator(s)
Read Optical Sensors
Read Temperture Sensors
Filter Selected
Locations Join & Aggregate
Operator(s)
Operator(s)
Operators & Transform
Images From:
http://ibmstreams.github.io/streamsx.documentation/docs/spl/quick-start/qs-2/
Analyzing tweets using Cloud Dataflow pipeline templates https://cloud.google.com/blog/products/gcp/analyzing-tweets-using-cloud-dataflow-pipeline-templates/
Time
5
4 4
1
7
2 2
6
4 1
Windowing
Sum: 19
Count: 5
2
3
6
4 4
7
2
2
6 4
1
2
• Divides an unbounded, continuous data stream into
smaller, finite segments
• Allows to perform operations and calculations on
manageable chunks of data.
• It’s not feasible to load/keep entire stream into memory
• Useful for analyzing data over specific time periods or
fixed numbers of events.
Window of Data
Learn More
Basics of Windowing - https://www.youtube.com/watch?v=oJ-LueBvOcM&t=1s
Advanced Windowing Concepts - https://www.youtube.com/watch?v=MuFA6CSti6M
Time
5
4 4
1
7
2 2
6
4
1
5 seconds
Time Based Windows
No Overlaps between windows elements
Tumbling/Fixed Window
5
1
4
7
2
4
5 seconds 5 seconds
4
2 1
Sum:11
Count: 4
Sum: 19
Count: 5
Sum: 5
Count: 2
Time
5
2 3
4 4
1
7
2 2
6
4
1
Size Based Windows
5
2 3
1
4
7
2
4
4
2
6
1
Sum: 11
Count: 4
Sum: 17
Count: 4
Sum: 13
Count: 4
2 3
2 3
Time
5
2 3
4 4
1
7
2 2
6
4
1
Time & Size Based Windows
5
2 3
1
4
7
2
4
4
2
6
1
Sum: 11
Count: 4
Sum: 17
Count: 4
Sum: 7
Count: 3
5 seconds 5 seconds 5 seconds
Sliding Window
Time
Success
Success
Success
Success Success
Error
WARN
WARN Error
WARN
Window #1 Window #2 Window #3 Window #N Window #N+1
Time Based Windows
Error
Error Error
Error Error
Error Error
Error
Success : 4
Warn : 0
Error : 0
Success : 3
Warn : 0
Error : 1
Success : 1
Warn : 2
Error : 1
………..
Success : 0
Warn : 0
Error : 4
Last 10 Second Every 5 Seconds + Overlaps Between Windows
Session Window
Time
User #1
Play
Heartbeat
Heart Beat
Seek
Seek Heartbeat
Seek
Heart Beat Heartbeat Heartbeat
Seek
Pause
Window #1 Window #2
10 sec
User #2
Play
Heartbeat
Heart Beat
Seek
Heartbeat
Heartbeat
Window #1 Window #2
20 sec
Close the window based on GAP Duration = 10 sec
Watermarks
1
2
3
4
7
Window #1 Window #2
5 seconds 5 seconds
1
2
3
4
7
Window #1 Window #2
5 seconds 5 seconds
4
Learn More
Basics of Windowing - https://www.youtube.com/watch?v=oJ-LueBvOcM&t=1s
Advanced Windowing Concepts - https://www.youtube.com/watch?v=MuFA6CSti6M
Basic Concepts & Patterns
 Bounded Stream / Unbounded Stream
 Operators & Transforms
 Event Time & Processing Time
 Event Delivery Guarantee
 Windowing ( Fixed , Sliding, Session, Watermark )
 States & Stateful Stream Processing
 Joining Streams & Enrichment Pattern
Learn More
Stream Join in Flink: from Discrete to Continuous - Xingcan Cui https://www.youtube.com/watch?v=3YVRluJUKIw
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf - https://www.youtube.com/watch?v=cJS18iKLUIY
2
5 3
2
1 2
1
3 4 5
Temperature Sensor
Stream
Moisture Sensor
Stream
Window Window Inner Join
2
1 1
2
Window Cross Join
(CoGroup)
3
2
1
5
2
1
Joining Streams & Enrichment Pattern
Device-2 , Temp : 28
Device-2 , Moisture : 876
Device-2
Moisture : 876
Temp : 28
Inner Join
States & Stateful Stream Processing
Learn More
Introduction to Stateful Stream Processing with Apache Flink - Robert Metzger https://www.youtube.com/watch?v=DkNeyCW-eH0
Webinar: Deep Dive on Apache Flink State - Seth Wiesman - https://www.youtube.com/watch?v=9GF8Hwqzwnk
State
Stateful
Operator
Streams
Stateless
Operator
Stateless
Operator
Stateless
Operator
Stateless
Operator
Stateless
Operator
Stateless
Operator
Stateful
Operator
Stateless
Operator
Stateless
Operator
Stateless
Operator
State
States & Stateful Stream Processing
Login
Attempts
State:
Last Threshold Breach : Nullable
Read
Windowing
Last 15 Minutes
Count
Enrich With Previous
Breache and Update
Last Breach
Group By IP
Brute Force Login Monitoring
Sink
Security
Alerts
Learn More
Introduction to Stateful Stream Processing with Apache Flink - Robert Metzger https://www.youtube.com/watch?v=DkNeyCW-eH0
Webinar: Deep Dive on Apache Flink State - Seth Wiesman - https://www.youtube.com/watch?v=9GF8Hwqzwnk
Login
Attempts
Login
Attempts
Filter Above
Threshold
Group By Key / KeyBy [4Geeks]
Play
Heartbeat
Heart Beat
Seek
Seek
Heartbeat
Seek
Heart Beat
Heartbeat
Heartbeat
Seek
Group By Action
Play
Play
Play
Group By Customer Seek Heartbeat
Heartbeat
Heartbeat Seek
Play
Play
Learn More
Apache Flink Specifying Keys https://medium.com/big-data-processing/apache-flink-specifying-keys-81b3b651469
Branching & merging PCollections with Apache Beam - https://youtu.be/RYD40js20a4
DEMO TIME
Apache Beam Code
Why And When Should We Consider Stream Processing In Our Solutions Teqnation 2023
IP Monitoring ( Apache Beam )
IP Monitoring ( Apache Beam )
What You Just Saw
Hidden Code Behind
The Functions
Order Enrichment With Customer Data [4Geeks]
Apache Beam + Dataflow vs Spring Boot
Customers Events (CDC)
Orders Events
Enriched Orders With
Customer Data
Enrich Order Data
Code Repository & Slides
@SorooshKh
Insights
1 Dataflow Worker with Default Spec
120k message processed in 3 minutes
Apache Beam + Dataflow
Order Enrichment Test Results
Note: Please note that the insights provided above are not derived from a fully accurate benchmark.
~ 700 msg/second
Higher Costs
For Keeping Job Running
Tested on Minimum Kubernetes Hardware on GCP
120k message processed in 5 minutes
Spring Boot
~ 400 msg/second
Lower Costs
For Keeping Job Running
Order Enrichment With Customer Data [4Geeks]
Customer
CDC
Read
Enrich Order With
Customer Data
Sink
EnrichedOrder
Orders Read
Store Customer
in Redis
Get Customer
Information from Redis
Spring Boot + Redis
Order Enrichment With Customer Data [4Geeks]
Customer
CDC
State:
Customer
Read
CoGroupByKey
EnrichOrderWithCusto
merData
Sink
EnrichedOrder
Orders Read
KeyBy
CustomerID
KeyBy
CustomerID
Update Customer in State
Customer(123) (123, Customer(123)) (123, Customer(123))
Order(1005, CustomerId =123) (123, Order(1005, CustomerId=123)) (123, Order(1005, CustomerId=123))
OrderWithCustomerData
- Order
- Customer
Learn More
Stream Join in Flink: from Discrete to Continuous - Xingcan Cui https://www.youtube.com/watch?v=3YVRluJUKIw
Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf - https://www.youtube.com/watch?v=cJS18iKLUIY
Apache Beam + Dataflow
Why Should We Consider It
Benefits, Drawbacks & Considerations
Benefits & Drawbacks
 Fast & High-Throughput
 Easy to Scale
 Exactly Once Processing / Fault Tolerant
 Customizable
 Advanced features in scale: Windowing,
Watermarks, Stateful Functions and ..
✖ Complexity
✖ Implementation & Maintenance
✖ Testing & Debugging is challenging
✖ Changing the data pipelines are hard
✖ Error handling is not simple
✖ Data consistency is not easy
Drawbacks
Benefits
Stream Processing Frameworks
Stream Data Integration vs Stream Analytics
Learn More
Stream Processing – Concepts and Frameworks (Guido Schmutz, Switzerland)
https://www.youtube.com/watch?v=vFshGQ2ndeg | https://www.slideshare.net/gschmutz/introduction-to-stream-processing-132881199
(Stream ETL)
Stream Data Integration Stream Analytics
 Reading Input
 Map
 Filter
 Simple Enrich
 Stateful Processing
 Pattern Matching
 Complex Calculations / Aggregations
Considerations
Learn More ( Important )
Apache Flink Worst Practices - Konstantin Knauf - https://www.youtube.com/watch?v=F7HQd3KX2TQ
Learning Curve Project Timeline Hard to Find Developer
Limited Docs/Resources Community Support Costs
Stream Data Integration
1 – 2 Weeks
Stream Analytics
2 – 3 Months
3 – 4 Engineers
4 – 6 Months
0 -> Stability
Cloud Providers Helps a Bit
Stream Processing
When should we consider it in our solutions?
DECISION
MAKING
FACTORS
Requirements
(FRs + NFRs +
Roadmap)
Development
Cost (Capex)
Maintenance
Cost (Opex)
Complexity Limitations Industry Best
Practices
When should we consider it in our solutions?
Case: Stream Data Integration
Context / Conditions
When should we consider it in our solutions?
Case: Stream Data Integration
Context / Conditions
• Events / second < 1K
• Experience of Stream processing : No
• Business queries are changing frequently
• Time to market : Very tight
• 3 – 4 Mid-Senior Developers
Learn More
Apache Flink Worst Practices - Konstantin Knauf https://www.youtube.com/watch?v=F7HQd3KX2TQ
Note: The cases incorporated within this presentation are designed to demonstrate the reasoning process.
When should we consider it in our solutions?
Learn More
Apache Flink Worst Practices - Konstantin Knauf https://www.youtube.com/watch?v=F7HQd3KX2TQ
Context / Conditions
Case: Stream Analytics
• Events / second > 10K
• Experience of Stream processing : No
• Business queries are clear and not changing frequently
• Real time/near real time insights are crucial ? Yes
• 3 – 4 Mid-Senior Developers
Note: The cases incorporated within this presentation are designed to demonstrate the reasoning process.
Quick Look On
Stream Processing Use Cases
Usecases
Video Streaming
Playback Analytics
IOT
GPS Tracking
Telecom
Billing / Charging System
Finance
Fraud Detection
E-Commerce
User Analytics
Gaming Industry
Anti-Cheat
Video Platforms
Use cases
Playback Analytics
Content Provider Shares
Pay Per Minute
Fraud Detection
Personalized
Recommendation
Learn More
Massive Scale Data Processing at Netflix using Flink - Snehal Nagmote & Pallavi Phadnis youtube.com/watch?v=lC0d3gAPXaI
Custom, Complex Windows at Scale using Apache Flink - Matt Zimmer (Netflix) youtube.com/watch?v=XUvqnsWm8yo
SF 2017: Monal Daxini - Stream Processing with Flink at Netflix youtube.com/watch?v=sPB8w-YXX1s
Real-time Processing with Flink for Machine Learning at Netflix - Elliot Chow youtube.com/watch?v=o4C7TDneH00
Gaming Industry
Use cases
Learn More
Kafka and Big Data Streaming Use Cases in the Gaming Industry
https://www.confluent.io/online-talks/kafka-and-big-data-streaming-use-cases-in-the-gaming-
industry/
Let's Play Flink – Fun with Streaming in a Gaming Company
https://www.youtube.com/watch?v=8BNKEmt47UM
Game
Telemetry
Analytics
Rewards
(In-Game)
Live
In-Game
Changes
(NPC, Quests, .. )
IoT
Integration
Loyalty
Service
Anti-Cheat
Chat Service
Monitoring
Match
Making
Payment
Fraud
Detection
In-Game
Recommendation
Advertiseme
AI
Training
Payment
Application Analytics
Use cases
Learn More
Implementing Google Analytics: A Case Study - Making Sense of Stream Processing by Martin Kleppmann
https://www.oreilly.com/library/view/making-sense-of/9781492042563/ch01.html
Martin Kleppmann — Event Sourcing and Stream Processing at Scale https://www.youtube.com/watch?v=avi-TZI9t2I
Singles Day 2018: Data in a Flink of an eye https://www.ververica.com/blog/singles-day-2018-data-in-a-flink-of-an-eye
Learn More
7 Reasons to use Apache Flink for your IoT Project
https://www.youtube.com/watch?v=Q0LBTmT4W9o
Fleet management / GPS Tracking
Anomaly detection
Smart home automation
Energy management
Environmental monitoring
Predictive maintenance
Self-Driving Cars
Internet Of Things
Use cases
Billing Network Optimization Security Fraud Detection
Learn More
Maciej Próchniak - Stream processing in telco - case study based on Apache Flink & TouK Nussknacker @ Devoxx Poland
https://www.youtube.com/watch?v=WLfEB__fM-4
Telecommunication
Use cases
Fraud detection
Algorithmic trading
Risk management
Real-time portfolio analysis Customer analytics
Regulatory compliance
Profit & Lost Insights
Learn More
Real Time Fraud Detection with Stateful Functions https://www.youtube.com/watch?v=RxDlksbsdQ0
Fast Data at ING - Martijn Visser & Bas Geerdink (ING) https://www.youtube.com/watch?v=e-_6gijUGAw
Stream ING Models – Real time model deployment of ML Capabilities https://www.youtube.com/watch?v=Do7C4UJyWCM
Financial Systems
Use cases
Stream Processing
How to start learning ?
How to start learning?
[1] https://youtu.be/65lmwL7rSy4
[2] https://youtube.com/playlist?list=PL8bzd7vku-WhVHzJgmXoCxx3aB4PxTQLP
[3] https://beamsummit.org/
[3] https://www.flink-forward.org/
[4] https://beam.apache.org/documentation/
[4] https://nightlies.apache.org/flink/flink-docs-stable/
1 2 3 4
IMPORTANT NOTE
Creating a Stream Processing service isn't as straightforward as crafting CRUD APIs. Relying solely on Google, development
tools, Stackoverflow, and copy-pasting won't get you far. It's crucial to dedicate ample time to thoroughly learn and
understand the underlying concepts.
Google Cloud Apache Beam
Debi Cabrera
Apache Beam Step By Step
Atul Raina
BEAM SUMMIT & FLINK
FORWARD
Official Documentation
Slides & Code Repository
Any Question ?
Send me a message on twitter or Linkedin
Thanks for your Attention !
@SorooshKh linkedin.com/in/sorooshkhodami/
Please Rate This Session
And Share Your Feedback

More Related Content

PDF
Drifting Away: Testing ML Models in Production
PPTX
MLOps and Data Quality: Deploying Reliable ML Models in Production
PDF
How to Build a ML Platform Efficiently Using Open-Source
PDF
Kubeflow Pipelines (with Tekton)
PDF
Ml ops past_present_future
PPTX
Notebooks @ Netflix: From analytics to engineering with Jupyter notebooks
PDF
Remote Log Analytics Using DDS, ELK, and RxJS
PDF
Offline evaluation of recommender systems: all pain and no gain?
Drifting Away: Testing ML Models in Production
MLOps and Data Quality: Deploying Reliable ML Models in Production
How to Build a ML Platform Efficiently Using Open-Source
Kubeflow Pipelines (with Tekton)
Ml ops past_present_future
Notebooks @ Netflix: From analytics to engineering with Jupyter notebooks
Remote Log Analytics Using DDS, ELK, and RxJS
Offline evaluation of recommender systems: all pain and no gain?

What's hot (20)

PPTX
From Data Science to MLOps
PPTX
Ship code like a keptn
PDF
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
PDF
KSQL Intro
PDF
Building an ML Platform with Ray and MLflow
PDF
박사과정 진학을 하기 전 알았으면 좋았을 것들
PPTX
Future of Data and AI in Retail - NRF 2023
PPTX
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
PPTX
Software Development Model for Startups
PDF
Simplified Machine Learning Architecture with an Event Streaming Platform (Ap...
PPTX
MLOps in action
PDF
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
PPTX
Big Data: Banking Industry Use Case
PDF
Intro to Graphs and Neo4j
PPTX
Latest trends in AI and information Retrieval
PPTX
Apache Pinot Meetup Sept02, 2020
PDF
The A-Z of Data: Introduction to MLOps
PPTX
Introduction To Streaming Data and Stream Processing with Apache Kafka
PDF
JupyterHub: Learning at Scale
PDF
Hacking Predictive Modeling - RoadSec 2018
From Data Science to MLOps
Ship code like a keptn
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streaming
KSQL Intro
Building an ML Platform with Ray and MLflow
박사과정 진학을 하기 전 알았으면 좋았을 것들
Future of Data and AI in Retail - NRF 2023
Learning to Rank: From Theory to Production - Malvina Josephidou & Diego Cecc...
Software Development Model for Startups
Simplified Machine Learning Architecture with an Event Streaming Platform (Ap...
MLOps in action
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Big Data: Banking Industry Use Case
Intro to Graphs and Neo4j
Latest trends in AI and information Retrieval
Apache Pinot Meetup Sept02, 2020
The A-Z of Data: Introduction to MLOps
Introduction To Streaming Data and Stream Processing with Apache Kafka
JupyterHub: Learning at Scale
Hacking Predictive Modeling - RoadSec 2018
Ad

Similar to Why And When Should We Consider Stream Processing In Our Solutions Teqnation 2023 (20)

PPTX
Trivento summercamp fast data 9/9/2016
PDF
Making Sense of Apache Flink: A Fearless Introduction
PDF
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
PDF
Don't Cross The Streams - Data Streaming And Apache Flink
PDF
Unified Stream & Batch Processing with Apache Flink (Hadoop Summit Dublin 2016)
PPTX
Trivento summercamp masterclass 9/9/2016
PDF
Santander Stream Processing with Apache Flink
PDF
Advanced Streaming Analytics with Apache Flink and Apache Kafka, Stephan Ewen
PPTX
Data Stream Processing with Apache Flink
PPTX
Overview of Apache Flink: the 4G of Big Data Analytics Frameworks
PPTX
Overview of Apache Fink: the 4 G of Big Data Analytics Frameworks
PPTX
Overview of Apache Fink: The 4G of Big Data Analytics Frameworks
PPTX
Apache Flink at Strata San Jose 2016
PDF
Unified Stream and Batch Processing with Apache Flink
PDF
Data Stream Analytics - Why they are important
PDF
Unbounded bounded-data-strangeloop-2016-monal-daxini
PPTX
January 2016 Flink Community Update & Roadmap 2016
PDF
Stream Processing with Apache Flink
PPTX
Flexible and Real-Time Stream Processing with Apache Flink
PDF
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
Trivento summercamp fast data 9/9/2016
Making Sense of Apache Flink: A Fearless Introduction
Unlocking the Power of Apache Flink: An Introduction in 4 Acts
Don't Cross The Streams - Data Streaming And Apache Flink
Unified Stream & Batch Processing with Apache Flink (Hadoop Summit Dublin 2016)
Trivento summercamp masterclass 9/9/2016
Santander Stream Processing with Apache Flink
Advanced Streaming Analytics with Apache Flink and Apache Kafka, Stephan Ewen
Data Stream Processing with Apache Flink
Overview of Apache Flink: the 4G of Big Data Analytics Frameworks
Overview of Apache Fink: the 4 G of Big Data Analytics Frameworks
Overview of Apache Fink: The 4G of Big Data Analytics Frameworks
Apache Flink at Strata San Jose 2016
Unified Stream and Batch Processing with Apache Flink
Data Stream Analytics - Why they are important
Unbounded bounded-data-strangeloop-2016-monal-daxini
January 2016 Flink Community Update & Roadmap 2016
Stream Processing with Apache Flink
Flexible and Real-Time Stream Processing with Apache Flink
Apache Flink: Better, Faster & Uncut - Piotr Nowojski, data Artisans
Ad

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Introduction to Artificial Intelligence
PDF
AI in Product Development-omnex systems
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPT
JAVA ppt tutorial basics to learn java programming
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Understanding Forklifts - TECH EHS Solution
PDF
System and Network Administraation Chapter 3
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Digital Strategies for Manufacturing Companies
PPTX
Transform Your Business with a Software ERP System
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPT
Introduction Database Management System for Course Database
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
medical staffing services at VALiNTRY
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
2025 Textile ERP Trends: SAP, Odoo & Oracle
How Creative Agencies Leverage Project Management Software.pdf
Operating system designcfffgfgggggggvggggggggg
Introduction to Artificial Intelligence
AI in Product Development-omnex systems
Adobe Illustrator 28.6 Crack My Vision of Vector Design
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
JAVA ppt tutorial basics to learn java programming
Online Work Permit System for Fast Permit Processing
Understanding Forklifts - TECH EHS Solution
System and Network Administraation Chapter 3
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Digital Strategies for Manufacturing Companies
Transform Your Business with a Software ERP System
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Introduction Database Management System for Course Database
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
medical staffing services at VALiNTRY
How to Migrate SBCGlobal Email to Yahoo Easily

Why And When Should We Consider Stream Processing In Our Solutions Teqnation 2023

  • 1. Company/speaker Presentation title #teqnation2021 CO-SPONSORS MAIN SPONSOR Why and when should we consider Stream Processing in our solutions Soroosh Khodami May 17 2023 @ Teqnation
  • 2. Agenda What is Stream Processing? Frameworks & Platforms Basic Concepts & Patterns Demo Time Benefits & Drawbacks + Considerations Use Cases For Different Industries How to start ?
  • 3. This Talk is For Software Developers Tech Leads / Software Architects Data Engineers / Data Scientist / AI Engineers Product Owners / Product Managers / Business Analysts
  • 4. $ whoami  I’m Soroosh Khodami  Full-Stack Developer at Bol.com & Code Nomads  Working with Stream Processing at Scale in Bol.com  Software Architecture Enthusiastic @SorooshKh linkedin.com/in/sorooshkhodami/ Slides & Code Repository Link Will Be Shared At The End
  • 7. What is Stream Processing? Event Processing? Event Driven?
  • 9. Stream (Data) Processing Stream processing is a big data technique that focuses on continuously reading data, processing the data individually or joining it with related data sets in real-time or near real- time, and then sending the output to other applications, data-stores, or systems.
  • 10. Event Processing Trigger Actions Decision Making Event Payment Received
  • 14. Stream Processing Universe 2023 Code will be executed on a Runner Standalone / Alongside other frameworks
  • 16. Hardened at Scale Powered By Flink https://flink.apache.org/powered-by/
  • 17. + Examples Stream Processing Basic Concepts & Patterns
  • 18. Bounded Stream / Unbounded Stream Time Now Past Future Unbounded Stream Bounded Stream #1 Start End Time Now Past Future Bounded Stream #2 Start End
  • 19. Event Time & Processing Time Processing Time Event Time 1 Login 1 2 3 4 5 6 7 2 Search 3 View 4 View 5 View 6 Play 1 Login 2 Search 3 View 4 View 5 View 6 Play 1 2 3 4 5 6 7
  • 20. Delivery Guarantees Learn More (Important) Streaming Concepts - Exactly Once Fault Tolerance Guarantees youtube.com/watch?v=9pRsewtSPkQ Rundown of Flink's Checkpoints - youtube.com/watch?v=hoLeQjoGBkQ Understanding exactly-once processing and windowing in streaming pipelines - youtube.com/watch?v=DraQGkARegE At Most Once At Least Once Exactly Once Messages can be lost, but never duplicated (Fire & Forget) Messages can be duplicated Messages are delivered & processed exactly once
  • 21. IoT Farm Context  +1000 Sensors  Multiple Sensors per location  Not reliable internet connection  Large amount of continious sensors data Requirements  Aggregated Sensors Data Per Location  Correct Order Of Data  No Duplicates
  • 22. Read Source Operators & Transform Transforms Sink Operator(s) Operator(s) Operator(s) Basic Building Blocks
  • 23. Read Soil Moisture Sensors Operators & Transform Sink IOT Farm Example Operator(s) Operator(s) Read Optical Sensors Read Temperture Sensors Filter Selected Locations Join & Aggregate Operator(s) Operator(s)
  • 24. Operators & Transform Images From: http://ibmstreams.github.io/streamsx.documentation/docs/spl/quick-start/qs-2/ Analyzing tweets using Cloud Dataflow pipeline templates https://cloud.google.com/blog/products/gcp/analyzing-tweets-using-cloud-dataflow-pipeline-templates/
  • 25. Time 5 4 4 1 7 2 2 6 4 1 Windowing Sum: 19 Count: 5 2 3 6 4 4 7 2 2 6 4 1 2 • Divides an unbounded, continuous data stream into smaller, finite segments • Allows to perform operations and calculations on manageable chunks of data. • It’s not feasible to load/keep entire stream into memory • Useful for analyzing data over specific time periods or fixed numbers of events. Window of Data Learn More Basics of Windowing - https://www.youtube.com/watch?v=oJ-LueBvOcM&t=1s Advanced Windowing Concepts - https://www.youtube.com/watch?v=MuFA6CSti6M
  • 26. Time 5 4 4 1 7 2 2 6 4 1 5 seconds Time Based Windows No Overlaps between windows elements Tumbling/Fixed Window 5 1 4 7 2 4 5 seconds 5 seconds 4 2 1 Sum:11 Count: 4 Sum: 19 Count: 5 Sum: 5 Count: 2 Time 5 2 3 4 4 1 7 2 2 6 4 1 Size Based Windows 5 2 3 1 4 7 2 4 4 2 6 1 Sum: 11 Count: 4 Sum: 17 Count: 4 Sum: 13 Count: 4 2 3 2 3 Time 5 2 3 4 4 1 7 2 2 6 4 1 Time & Size Based Windows 5 2 3 1 4 7 2 4 4 2 6 1 Sum: 11 Count: 4 Sum: 17 Count: 4 Sum: 7 Count: 3 5 seconds 5 seconds 5 seconds
  • 27. Sliding Window Time Success Success Success Success Success Error WARN WARN Error WARN Window #1 Window #2 Window #3 Window #N Window #N+1 Time Based Windows Error Error Error Error Error Error Error Error Success : 4 Warn : 0 Error : 0 Success : 3 Warn : 0 Error : 1 Success : 1 Warn : 2 Error : 1 ……….. Success : 0 Warn : 0 Error : 4 Last 10 Second Every 5 Seconds + Overlaps Between Windows
  • 28. Session Window Time User #1 Play Heartbeat Heart Beat Seek Seek Heartbeat Seek Heart Beat Heartbeat Heartbeat Seek Pause Window #1 Window #2 10 sec User #2 Play Heartbeat Heart Beat Seek Heartbeat Heartbeat Window #1 Window #2 20 sec Close the window based on GAP Duration = 10 sec
  • 29. Watermarks 1 2 3 4 7 Window #1 Window #2 5 seconds 5 seconds 1 2 3 4 7 Window #1 Window #2 5 seconds 5 seconds 4 Learn More Basics of Windowing - https://www.youtube.com/watch?v=oJ-LueBvOcM&t=1s Advanced Windowing Concepts - https://www.youtube.com/watch?v=MuFA6CSti6M
  • 30. Basic Concepts & Patterns  Bounded Stream / Unbounded Stream  Operators & Transforms  Event Time & Processing Time  Event Delivery Guarantee  Windowing ( Fixed , Sliding, Session, Watermark )  States & Stateful Stream Processing  Joining Streams & Enrichment Pattern
  • 31. Learn More Stream Join in Flink: from Discrete to Continuous - Xingcan Cui https://www.youtube.com/watch?v=3YVRluJUKIw Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf - https://www.youtube.com/watch?v=cJS18iKLUIY 2 5 3 2 1 2 1 3 4 5 Temperature Sensor Stream Moisture Sensor Stream Window Window Inner Join 2 1 1 2 Window Cross Join (CoGroup) 3 2 1 5 2 1 Joining Streams & Enrichment Pattern Device-2 , Temp : 28 Device-2 , Moisture : 876 Device-2 Moisture : 876 Temp : 28 Inner Join
  • 32. States & Stateful Stream Processing Learn More Introduction to Stateful Stream Processing with Apache Flink - Robert Metzger https://www.youtube.com/watch?v=DkNeyCW-eH0 Webinar: Deep Dive on Apache Flink State - Seth Wiesman - https://www.youtube.com/watch?v=9GF8Hwqzwnk State Stateful Operator Streams Stateless Operator Stateless Operator Stateless Operator Stateless Operator Stateless Operator Stateless Operator Stateful Operator Stateless Operator Stateless Operator Stateless Operator State
  • 33. States & Stateful Stream Processing Login Attempts State: Last Threshold Breach : Nullable Read Windowing Last 15 Minutes Count Enrich With Previous Breache and Update Last Breach Group By IP Brute Force Login Monitoring Sink Security Alerts Learn More Introduction to Stateful Stream Processing with Apache Flink - Robert Metzger https://www.youtube.com/watch?v=DkNeyCW-eH0 Webinar: Deep Dive on Apache Flink State - Seth Wiesman - https://www.youtube.com/watch?v=9GF8Hwqzwnk Login Attempts Login Attempts Filter Above Threshold
  • 34. Group By Key / KeyBy [4Geeks] Play Heartbeat Heart Beat Seek Seek Heartbeat Seek Heart Beat Heartbeat Heartbeat Seek Group By Action Play Play Play Group By Customer Seek Heartbeat Heartbeat Heartbeat Seek Play Play Learn More Apache Flink Specifying Keys https://medium.com/big-data-processing/apache-flink-specifying-keys-81b3b651469 Branching & merging PCollections with Apache Beam - https://youtu.be/RYD40js20a4
  • 37. IP Monitoring ( Apache Beam )
  • 38. IP Monitoring ( Apache Beam )
  • 39. What You Just Saw Hidden Code Behind The Functions
  • 40. Order Enrichment With Customer Data [4Geeks] Apache Beam + Dataflow vs Spring Boot Customers Events (CDC) Orders Events Enriched Orders With Customer Data Enrich Order Data Code Repository & Slides @SorooshKh
  • 41. Insights 1 Dataflow Worker with Default Spec 120k message processed in 3 minutes Apache Beam + Dataflow Order Enrichment Test Results Note: Please note that the insights provided above are not derived from a fully accurate benchmark. ~ 700 msg/second Higher Costs For Keeping Job Running Tested on Minimum Kubernetes Hardware on GCP 120k message processed in 5 minutes Spring Boot ~ 400 msg/second Lower Costs For Keeping Job Running
  • 42. Order Enrichment With Customer Data [4Geeks] Customer CDC Read Enrich Order With Customer Data Sink EnrichedOrder Orders Read Store Customer in Redis Get Customer Information from Redis Spring Boot + Redis
  • 43. Order Enrichment With Customer Data [4Geeks] Customer CDC State: Customer Read CoGroupByKey EnrichOrderWithCusto merData Sink EnrichedOrder Orders Read KeyBy CustomerID KeyBy CustomerID Update Customer in State Customer(123) (123, Customer(123)) (123, Customer(123)) Order(1005, CustomerId =123) (123, Order(1005, CustomerId=123)) (123, Order(1005, CustomerId=123)) OrderWithCustomerData - Order - Customer Learn More Stream Join in Flink: from Discrete to Continuous - Xingcan Cui https://www.youtube.com/watch?v=3YVRluJUKIw Webinar: 99 Ways to Enrich Streaming Data with Apache Flink - Konstantin Knauf - https://www.youtube.com/watch?v=cJS18iKLUIY Apache Beam + Dataflow
  • 44. Why Should We Consider It Benefits, Drawbacks & Considerations
  • 45. Benefits & Drawbacks  Fast & High-Throughput  Easy to Scale  Exactly Once Processing / Fault Tolerant  Customizable  Advanced features in scale: Windowing, Watermarks, Stateful Functions and .. ✖ Complexity ✖ Implementation & Maintenance ✖ Testing & Debugging is challenging ✖ Changing the data pipelines are hard ✖ Error handling is not simple ✖ Data consistency is not easy Drawbacks Benefits Stream Processing Frameworks
  • 46. Stream Data Integration vs Stream Analytics Learn More Stream Processing – Concepts and Frameworks (Guido Schmutz, Switzerland) https://www.youtube.com/watch?v=vFshGQ2ndeg | https://www.slideshare.net/gschmutz/introduction-to-stream-processing-132881199 (Stream ETL) Stream Data Integration Stream Analytics  Reading Input  Map  Filter  Simple Enrich  Stateful Processing  Pattern Matching  Complex Calculations / Aggregations
  • 47. Considerations Learn More ( Important ) Apache Flink Worst Practices - Konstantin Knauf - https://www.youtube.com/watch?v=F7HQd3KX2TQ Learning Curve Project Timeline Hard to Find Developer Limited Docs/Resources Community Support Costs Stream Data Integration 1 – 2 Weeks Stream Analytics 2 – 3 Months 3 – 4 Engineers 4 – 6 Months 0 -> Stability Cloud Providers Helps a Bit
  • 48. Stream Processing When should we consider it in our solutions?
  • 49. DECISION MAKING FACTORS Requirements (FRs + NFRs + Roadmap) Development Cost (Capex) Maintenance Cost (Opex) Complexity Limitations Industry Best Practices
  • 50. When should we consider it in our solutions? Case: Stream Data Integration Context / Conditions
  • 51. When should we consider it in our solutions? Case: Stream Data Integration Context / Conditions • Events / second < 1K • Experience of Stream processing : No • Business queries are changing frequently • Time to market : Very tight • 3 – 4 Mid-Senior Developers Learn More Apache Flink Worst Practices - Konstantin Knauf https://www.youtube.com/watch?v=F7HQd3KX2TQ Note: The cases incorporated within this presentation are designed to demonstrate the reasoning process.
  • 52. When should we consider it in our solutions? Learn More Apache Flink Worst Practices - Konstantin Knauf https://www.youtube.com/watch?v=F7HQd3KX2TQ Context / Conditions Case: Stream Analytics • Events / second > 10K • Experience of Stream processing : No • Business queries are clear and not changing frequently • Real time/near real time insights are crucial ? Yes • 3 – 4 Mid-Senior Developers Note: The cases incorporated within this presentation are designed to demonstrate the reasoning process.
  • 53. Quick Look On Stream Processing Use Cases
  • 54. Usecases Video Streaming Playback Analytics IOT GPS Tracking Telecom Billing / Charging System Finance Fraud Detection E-Commerce User Analytics Gaming Industry Anti-Cheat
  • 55. Video Platforms Use cases Playback Analytics Content Provider Shares Pay Per Minute Fraud Detection Personalized Recommendation Learn More Massive Scale Data Processing at Netflix using Flink - Snehal Nagmote & Pallavi Phadnis youtube.com/watch?v=lC0d3gAPXaI Custom, Complex Windows at Scale using Apache Flink - Matt Zimmer (Netflix) youtube.com/watch?v=XUvqnsWm8yo SF 2017: Monal Daxini - Stream Processing with Flink at Netflix youtube.com/watch?v=sPB8w-YXX1s Real-time Processing with Flink for Machine Learning at Netflix - Elliot Chow youtube.com/watch?v=o4C7TDneH00
  • 56. Gaming Industry Use cases Learn More Kafka and Big Data Streaming Use Cases in the Gaming Industry https://www.confluent.io/online-talks/kafka-and-big-data-streaming-use-cases-in-the-gaming- industry/ Let's Play Flink – Fun with Streaming in a Gaming Company https://www.youtube.com/watch?v=8BNKEmt47UM Game Telemetry Analytics Rewards (In-Game) Live In-Game Changes (NPC, Quests, .. ) IoT Integration Loyalty Service Anti-Cheat Chat Service Monitoring Match Making Payment Fraud Detection In-Game Recommendation Advertiseme AI Training Payment
  • 57. Application Analytics Use cases Learn More Implementing Google Analytics: A Case Study - Making Sense of Stream Processing by Martin Kleppmann https://www.oreilly.com/library/view/making-sense-of/9781492042563/ch01.html Martin Kleppmann — Event Sourcing and Stream Processing at Scale https://www.youtube.com/watch?v=avi-TZI9t2I Singles Day 2018: Data in a Flink of an eye https://www.ververica.com/blog/singles-day-2018-data-in-a-flink-of-an-eye
  • 58. Learn More 7 Reasons to use Apache Flink for your IoT Project https://www.youtube.com/watch?v=Q0LBTmT4W9o Fleet management / GPS Tracking Anomaly detection Smart home automation Energy management Environmental monitoring Predictive maintenance Self-Driving Cars Internet Of Things Use cases
  • 59. Billing Network Optimization Security Fraud Detection Learn More Maciej Próchniak - Stream processing in telco - case study based on Apache Flink & TouK Nussknacker @ Devoxx Poland https://www.youtube.com/watch?v=WLfEB__fM-4 Telecommunication Use cases
  • 60. Fraud detection Algorithmic trading Risk management Real-time portfolio analysis Customer analytics Regulatory compliance Profit & Lost Insights Learn More Real Time Fraud Detection with Stateful Functions https://www.youtube.com/watch?v=RxDlksbsdQ0 Fast Data at ING - Martijn Visser & Bas Geerdink (ING) https://www.youtube.com/watch?v=e-_6gijUGAw Stream ING Models – Real time model deployment of ML Capabilities https://www.youtube.com/watch?v=Do7C4UJyWCM Financial Systems Use cases
  • 61. Stream Processing How to start learning ?
  • 62. How to start learning? [1] https://youtu.be/65lmwL7rSy4 [2] https://youtube.com/playlist?list=PL8bzd7vku-WhVHzJgmXoCxx3aB4PxTQLP [3] https://beamsummit.org/ [3] https://www.flink-forward.org/ [4] https://beam.apache.org/documentation/ [4] https://nightlies.apache.org/flink/flink-docs-stable/ 1 2 3 4 IMPORTANT NOTE Creating a Stream Processing service isn't as straightforward as crafting CRUD APIs. Relying solely on Google, development tools, Stackoverflow, and copy-pasting won't get you far. It's crucial to dedicate ample time to thoroughly learn and understand the underlying concepts. Google Cloud Apache Beam Debi Cabrera Apache Beam Step By Step Atul Raina BEAM SUMMIT & FLINK FORWARD Official Documentation
  • 63. Slides & Code Repository Any Question ? Send me a message on twitter or Linkedin Thanks for your Attention ! @SorooshKh linkedin.com/in/sorooshkhodami/ Please Rate This Session And Share Your Feedback

Editor's Notes

  • #3: What is Stream Processing ? Why We Should Learn It ?
  • #5: Developer By Day, Furniture Assembelr By Night I learned that using Right tool is the most important part of assembling
  • #6: Question 1: Who has heard these technologies a lot ? Question 2: Who has used this technologies in production ? Everyday that we wake up, we hear some new Apache technologies ..
  • #9: Okay, Not for me I'm not fan of complex definitions. let's get to a simple definition
  • #10: reading data multiple source processing Data itself. payload itself individually or joined with other data sending out to another system
  • #11: Event processing is a technique that focuses on listening for specific events or patterns of events within a system, enabling decision-making and triggering actions based on the information contained in the events.
  • #12: Services communicates with Events
  • #17: We need to chunk the data to make it feasible to process
  • #19: Bounded Stream Example : Processing list of last month records for Train Check in – Checkout for Analysis purpose
  • #20: 1 Minute : You are watching netflix on Airplane / Subway . Your actions will be synced afterward
  • #21: We have three type of guarantees, no gurantee , at least one delivery, exactly once delivery Flink -> Checkpointing Don’t forget to check learn more
  • #22: Ok, wait. Hold your horse , So you said a lot of definitions, what is the usecase ..
  • #23: Transforms are Filter , Map , Aggregate , Join, Custom Functions
  • #24: 30s – 1 Minute
  • #25: 1 minute
  • #26: 1 minute We cannot carry two watermelon with one hand We need to chunk the data to make it feasible to process Ok, right. We should devide . but how we are going to divide the data ?
  • #27: It’s very similar to a shuttle, isn’t it ?
  • #28: Let’s imagine that we are receiving request logs
  • #29: Watching Video on in the Subway or during the flight Phone Call How Stream Processing can do this ? Session Window is based on Group By Key
  • #31: 1 Minute : Thing that we need to learn, they are too much. So we make it easier by Examples ! How can we do it in our current applications, without Stream processing frame works ?
  • #33: Some times we need to store some data, and later looking back to stored data similar to what we used to do with Redis / Database.
  • #35: Key By is most commong Transformation partition the data stream similar to group by in SQL Some times we need to group some of the data together Some times it may cause a network shuffle that will partition the stream on different nodes
  • #36: 5 minute
  • #38: val failedLogins = p.apply("Read PubSub Messages", readFromPubSubSubscription()) val ipCounts = failedLogins .apply("Window", failedLoginWindowingStrategy()) .apply("Map to KV <IP,MSG>", mapToKVIPAddr()) .apply("Group by Key IP-Addr", GroupByKey.create()) .apply("Count per IP", countNumberOfAttempts()) val alerts = ipCounts .apply("Filter by Threshold", isCountOfAttempAboveThresholdFilter()) .apply("Enrich with Old Breaches Last Month", enrichWithOldBreachesLastMonth()) alerts.apply("Write Alerts to PubSub", publishToPubSubTopic())
  • #39: val failedLogins = p.apply("Read PubSub Messages", readFromPubSubSubscription()) val ipCounts = failedLogins .apply("Window", failedLoginWindowingStrategy()) .apply("Map to KV <IP,MSG>", mapToKVIPAddr()) .apply("Group by Key IP-Addr", GroupByKey.create()) .apply("Count per IP", countNumberOfAttempts()) val alerts = ipCounts .apply("Filter by Threshold", isCountOfAttempAboveThresholdFilter()) .apply("Enrich with Old Breaches Last Month", enrichWithOldBreachesLastMonth()) alerts.apply("Write Alerts to PubSub", publishToPubSubTopic())
  • #40: Stream Processing Applications and especially when you start to have Stateful functions are not really easy.
  • #46: Complexity Handling out-of-order events, windowing, and state management Increased complexity compared to batch processing Implementation and Maintenance Expertise required in distributed systems, fault tolerance, and specific stream processing frameworks Maintenance effort for business logic and data flow changes Testing and Debugging Complex testing scenarios and simulation of various events and failures Difficulties in debugging due to real-time and distributed nature of processing Error Handling Managing errors and edge cases can be challenging Recovery mechanisms and failure scenarios require careful consideration Data Consistency Ensuring exactly-once processing and data consistency can be challenging Requires robust handling of distributed systems and failures Learning Curve and Project Timeline 2-3 months for a medior developer to become proficient 4-6 months for a project to reach stability from start Resource Intensiveness Real-time processing may consume more resources than batch processing Cloud services can help mitigate infrastructure costs
  • #47: In Short Stream Data Integration is Map Transform Filter Enrich Stream Data Integration is also using States , Windowing , State Management, Event Pattern
  • #48: Learning Curve Stream Data Integration : 1 – 2 weeks Stream Analytics: 2 – 3 months For not very basic project, expect 2-4 months from project initiation to reach stability It’s not easy to find developers with extensive stream processing experience. For most of Stream processing frameworks, there are not many step by step documentation & stack overflow questions with working answers. You need to connect the dots yourself. Decent community support available, but not as extensive as Spring or other popular frameworks Stream processing can be resource-intensive, ( Cloud services helps us here )
  • #51: Case Stream Data Integration: (Map, Filter, Basic Enrichment) You are not getting much out of using Stream processing frameworks. You can achieve almost same results with other tools with possibility to scale up. Case Stream Analytics : You should start investing on your stream processing solution and building a team by help of professional consultants to lead/faciliate/boost the process. In the mean time, you can use other available tools to support part of your business requirements. ( Like BigQuery, Monitoring tools)
  • #52: Case Stream Data Integration: (Map, Filter, Basic Enrichment) You are not getting much out of using Stream processing frameworks. You can achieve almost same results with other tools with possibility to scale up. Case Stream Analytics : You should start investing on your stream processing solution and building a team by help of professional consultants to lead/faciliate/boost the process. In the mean time, you can use other available tools to support part of your business requirements. ( Like BigQuery, Monitoring tools)
  • #53: Case Stream Data Integration: (Real time ETL) You are not getting much out of using Stream processing frameworks. You can achieve almost same results with other tools with possibility to scale up. Case Stream Analytics : You should start investing on your stream processing solution and building a team by help of professional consultants to lead/faciliate/boost the process. In the mean time, you can use other available tools to support part of your business requirements. ( Like BigQuery, Monitoring tools)
  • #59: Anomaly detection: Stream processing can help identify unusual patterns or behaviors in IoT device data, enabling early detection of potential issues or failures. For example, it can be used to monitor sensor data from industrial equipment or vehicles to detect anomalies that may indicate a malfunction or maintenance need. Smart home automation: In a smart home environment, stream processing can be used to analyze data from various sensors and devices to trigger automated actions, such as adjusting lighting or temperature based on occupancy, time of day, or user preferences. Fleet management: Stream processing can analyze data from GPS trackers, vehicle sensors, and other devices in real-time to optimize fleet operations. This may include route planning, vehicle maintenance scheduling, fuel efficiency analysis, or driver behavior monitoring. Environmental monitoring: IoT devices can be deployed to monitor various environmental parameters, such as air quality, water levels, or temperature. Stream processing can be used to analyze this data in real-time, enabling rapid response to environmental changes or potential hazards. Energy management: Stream processing can be used to analyze energy consumption data from smart meters, IoT devices, and sensors in real-time, helping to optimize energy usage and reduce costs. This can be applied to smart grids, microgrids, or individual buildings. Predictive maintenance: By analyzing IoT sensor data in real-time, stream processing can help predict when a machine or equipment may require maintenance or is likely to fail. This allows for proactive maintenance scheduling, reducing downtime and increasing operational efficiency.