~/talk

Functional Patterns in Domain Modeling

slides:none on file

Argues for building domain APIs from verbs-first algebras of types, functions and laws using Scala’s static type system; composes behaviors by reusing categorical algebras (monoid, functor, monad) and the Kleisli and Monad Transformers patterns so a trade pipeline is expressed as composable Kleisli values long before any concrete implementation. Shows ListT/OptionT to stack repetition and error effects, Free monads to separate interpreters, and property‑based tests to verify domain laws; claims fewer lines of code, multiple interpreters and stronger compile‑time guarantees.

AI-written summary · about

  1. 0:00Introduction
  2. 1:08What is domain modeling
  3. 2:30Functional approach to modeling
  4. 3:55Problem vs solution domain
  5. 4:39Rich vs lean domain models
  6. 7:35Verbs first design
  7. 8:19API evolution via algebra
  8. 11:38Securities trading example
  9. 13:25Monoid explained
  10. 15:56Formalizing domain algebra
  11. 17:22Modeling and API evolution
  12. 18:10Use case order processing
  13. 21:45Initial algebra for trading
  14. 24:16Refactoring for composability
  15. 26:54Functions with monads/kleisli
  16. 31:54Trade generation implementation
  17. 34:29Error handling with monad transformers
  18. 37:20Algebra with error reporting
  19. 42:42Domain rules and testing
  20. 44:27Free monads decoupling
  21. 47:41Key takeaways
  22. 49:12Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.