Drinking a river of IoT data with Akka.NET
summary
Demonstrates an Akka.NET architecture that turns each meter into a device-per-actor model, ingests events from IoT Hub / Event Hub via an App Service proxy, and routes messages over TCP remoting to a cluster with sharding and persistence. Shows normalization, timestamp bucketing and six gap‑fill strategies, persistent actors with persistence snapshots, and deployment flow that pauses ingestion to avoid data loss. Claims performance up to 50 million messages/sec per machine while showing practical persistence, recovery and monitoring patterns that work at scale.
AI-written summary · about
chapters (48)
- 0:00Introduction
- 0:32Agenda
- 1:03History
- 1:45Ericsson
- 3:16AkkaNET
- 4:07What happened in 2015
- 4:56The explosion of internet usage
- 7:08Running parallel code
- 7:52Amdahls law
- 8:52Actor models
- 9:44Actor
- 10:53Actor code
- 11:32Messages
- 13:05immutable messages
- 13:43actor system
- 15:32actor hierarchy
- 16:11supervision
- 18:53risk to the edges
- 19:17design patterns
- 19:41character actor
- 21:06IoT device
- 21:22Meter readings vs consumption
- 22:07Compute consumption
- 22:39momentary consumption
- 23:13overconsumption
- 23:38iOS D stack
- 25:14IoT Hub
- 26:40Dont be a magpie
- 27:42Local actor systems
- 28:39Remote actor systems
- 31:26Actor Proxy
- 32:55Receive Actor
- 35:00Device Actor
- 37:06Data Loss
- 38:02Timestamp Correction Bucketing
- 39:09Filling Gaps
- 39:29Flatlines
- 41:26Normalized Messages
- 42:18Data to Disk
- 42:37Persistent Actor
- 47:50Truncate Actor
- 49:07System Restarts
- 49:22Recreating Actors
- 50:11Conclusion
- 51:19Learning resources
- 52:03Deployment
- 52:31Conclusions
- 53:05Questions
related talks
52mDrinking a River of IoT Data with Akka.NET
48mStreaming all the things with Akka Streams
22mAdvanced Akka features
47mNetworks and Types — the Future of Akka
15mAzure IoT from the edge to ADX
31mFun with Sensors
01h 32mFrom Spring + Java to Spring + Akka - A Journey of Discovery
34mStream processing IoT time series data with RabbitMQ & InfluxDB
