Design for errors - An introduction to Domain Modeling with a bit of Arrow
summary
Walks from a fragile JSON DTO to a domain model in Kotlin using Arrow, replacing nullable Strings with smart constructors, wrapping presence with Option/Either/Try/NonEmptyList and modeling contact methods as a sealed list of choices. Demonstrates a verifiable workflow where an UnverifiedEmail must pass a verification service to become a VerifiedEmail, shows how IO and Try capture network/timeouts, and argues these types prevent bugs (and costly failures) by encoding rules in signatures.
AI-written summary · about
chapters (5)
- 0:00Start
- 5:46Null check all the things!
- 9:10What do you mean "Nothing"?!
- 9:42With multiple Option values
- 30:20It's a non empty list
related talks
42mDesign for errors - An introduction to Domain Modeling with Arrow
44mError Handling Beyond the Standard Library
49mDomain Modeling Made Functional
52mDomain Modeling Made Functional
51mDomain Modeling Made Functional
41mAn Arrow to the Kotlin
54mFunctional Web APis in Practice
40mArrow of Outrageous Error Handling
