Reactive DDD: Modeling Uncertainty
SpringOne Platform 2017 Vaughn Vernon The foundation ideas behind Domain-Driven Design, or DDD, are fundamentally the same as when Eric Evans brought them to our attention through his seminal work. The Bounded Context with its Ubiquitous Language is still of chief importance, along with mapping various Bounded Contexts to form a whole system solution. Even so, what has changed substantially is the computing landscape on which software developers construct and release these solutions. Systems are far more likely to be distributed, especially due to the ever increasing popularity of the cloud and microservices. Systems are also increasingly asynchronous, event-driven, and reactive. In addition, some of the DDD tools have been influenced by this and the rise in popularity of functional programming languages and NoSql databases. In the face of these and other influencing conditions, a pertinent question is, how can DDD be even more relevant today than when it was first explained? This talk addresses the current industry competing forces, and how the uncertainty introduced by vastly distributed systems can be finessed into highly functioning, business-centric systems, that teams can design, develop, and reason about.