Side Effects are The Complexity Iceberg
Talkat JCON Europe 2023 · on Thursday, 2023-06-22· at 15:00· Cinema Blackbox, Im Mediapark 1, 50670 Köln, Germany·
summary
Argues that side effects are hidden inputs and hidden outputs that drive accidental complexity and shows concrete countermeasures: Rust ownership to track mutability, Haskell-style types/contexts (monads) to expose effects in signatures, immutable data structures (solved in production for ~25 years), actor-style messaging and an append-only event log (the basis of Kafka) to make state changes testable and replayable. Demonstrates that systems built this way can reconstruct databases from logs, enable reliable auditing and simpler unit testing.
AI-written summary · about
chapters (17)
- 0:00Introduction and setup
- 1:48What are side effects?
- 5:17Hidden inputs and outputs
- 8:06Composition and hidden complexity
- 10:14Data mutation dangers
- 12:00Encapsulation and microservices
- 13:27Rust’s ownership model
- 14:29Immutable data structures
- 16:13Haskell’s context tracking
- 23:09Java and functional ideas
- 23:52Microservices and side effects
- 26:58Actors and event-driven systems
- 28:45Persistent queues and logs
- 31:55Data meshes and Kafka
- 32:39Inherent vs accidental complexity
- 34:04Practical takeaways
- 35:55Q&A
related talks
01h 00mLogic vs. side effects: functional goodness you don't hear about
38mSide Effects are a Public API
39mDesigning software with effects systems
37mManaging Side Effects with Swift
49mA Practical Introduction to Eff in Haskell
32mEffective problem solving
01h 17mWhen Less Is More: Designing & Decoding Complex Distributed Systems
33mExtensible Effects: A Leaner Cake for Purely Functional Code
