Implementing Domain-Driven Design
“Implementing Domain-Driven Design” presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.
Building on Eric Evans’ seminal book, “Domain-Driven Design,” Vaughn presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples—all applicable to C# developers—and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.
Vaughn Vernon, the author, takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.
Purchase in Your Language
Domain-Driven Design Distilled
Domain-Driven Design (DDD) software modeling delivers powerful results in practice, not just in theory, which is why developers worldwide are rapidly moving to adopt it. Now, for the first time, there’s an accessible guide to the basics of DDD: What it is, what problems it solves, how it works, and how to quickly gain value from it.
Concise, readable, and actionable, Domain-Driven Design Distilled never buries you in detail–it focuses on what you need to know to get results. Vaughn Vernon, author of the best-selling “Implementing Domain-Driven Design,” draws on his twenty years of experience applying DDD principles to real-world situations. He is uniquely well-qualified to demystify its complexities, illuminate its subtleties, and help you solve the problems you might encounter.
Vernon guides you through each core DDD technique for building better software. You’ll learn how to segregate domain models using the powerful Bounded Contexts pattern, to develop a Ubiquitous Language within an explicitly bounded context, and to help domain experts and developers work together to create that language. Vernon shows how to use Subdomains to handle legacy systems and to integrate multiple Bounded Contexts to define both team relationships and technical mechanisms.
“Domain-Driven Design Distilled” brings DDD to life. Whether you’re a developer, architect, analyst, consultant, or customer, Vernon helps you truly understand it so you can benefit from its remarkable power.
Purchase in Your Language
Reactive Messaging Patterns with the Actor Model
“Reactive Messaging Patterns with the Actor Model” enables enterprise developers to solve complex application and integration problems that were nearly impossible to address before. Developers can build multi-core, multi-threaded, highly-scalable, high performance, low-latency systems, and write composable software that is event-driven, scalable under load, responsive, and highly resilient. Developers are increasingly recognizing the potential of these technologies, and companies including Lightbend, VMware, and SpringSource have recently released new tools for using them. Now, there’s a start-to-finish guide to using reactive programming and the Actor model with Scala and Akka: Reactive Messaging Patterns with the Actor Model.
The book begins with a concise, usable review of programming with the Actor model and the Scala language and the Akka toolkit. Next, Vaughn presents a guide to achieving high performance using the threading model supplied with actor systems. Following this is an easy-to-adapt cookbook of solutions for message-based applications and integration. The detailed solutions address messaging systems, channels, construction, routing, transportation, endpoints, and system management. Each follows the proven format introduced by Gregor Hohpe and Bobby Woolf in their popular Enterprise Integration Patterns, while offering advanced solutions based on Scala and Akka. Using this guide’s insights and examples, you can take Scala programming to the next level, applying Scala with the Akka toolkit to achieve maximum organizational value.
Continuous Architecture in Practice
Authors Murat Erder, Pierre Pureur, and Eoin Woods have taken their extensive software architecture experience and applied it to the practical aspects of software architecture in real-world environments. Continuous Architecture in Practice provides hands-on advice for leveraging the continuous architecture approach in real-world environments and illuminates architectures changing role in the age of Agile, DevOps, and cloud platforms. This guide will help technologists update their architecture practice for new software challenges.
As part of the Vaughn Vernon Signature Series, this title was hand-selected for the practical, delivery-oriented knowledge that architects and software engineers can quickly apply. It includes in-depth guidance for addressing today’s key quality attributes and cross-cutting concerns such as security, performance, scalability, resilience, data, and emerging technologies. Each key technique is demonstrated through a start-to-finish case study reflecting the authors deep experience with complex software environments. Key topics include:
- Creating sustainable, coherent systems that meet functional requirements and the quality attributes stakeholders care about
- Understanding team-based software architecture and architecture as a “flow of decisions”
- Understanding crucial issues of data management, integration, and change, and the impact of varied data technologies on architecture
- Architecting for security, including continuous threat modeling and mitigation
- Architecting for scalability and resilience, including scaling microservices and serverless environments
- Using architecture to improve performance in continuous delivery environments
- Using architecture to apply emerging technologies successfully