O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Functional and Reactive Domain Modeling

Book Description

Summary

Functional and Reactive Domain Modeling teaches you how to think of the domain model in terms of pure functions and how to compose them to build larger abstractions.

About the Technology

Traditional distributed applications won’t cut it in the reactive world of microservices, fast data, and sensor networks. To capture their dynamic relationships and dependencies, these systems require a different approach to domain modeling. A domain model composed of pure functions is a more natural way of representing a process in a reactive system, and it maps directly onto technologies and patterns like Akka, CQRS, and event sourcing.

About the Book

Functional and Reactive Domain Modeling teaches you consistent, repeatable techniques for building domain models in reactive systems. This book reviews the relevant concepts of FP and reactive architectures and then methodically introduces this new approach to domain modeling. As you read, you’ll learn where and how to apply it, even if your systems aren’t purely reactive or functional. An expert blend of theory and practice, this book presents strong examples you’ll return to again and again as you apply these principles to your own projects.

What’s Inside

  • Real-world libraries and frameworks

  • Establish meaningful reliability guarantees

  • Isolate domain logic from side effects>

  • About the Reader

    Readers should be comfortable with functional programming and traditional domain modeling. Examples use the Scala language.

    About the Author

    Software architect Debasish Ghosh was an early adopter of reactive design using Scala and Akka. He’s the author of DSLs in Action, published by Manning in 2010.