Welcome!

Microservices Expo Authors: Pat Romanski, Liz McMillan, Sematext Blog, Elizabeth White, Carmen Gonzalez

Blog Feed Post

Implementing Domain-Driven Design Book Review

Agile is not easy and implementing Domain-Driven Design (DDD) is not easy. I think my favorite part of the book is that the author realizes that, and also has a realistic perspective on what it takes to successfully use agile processes and DDD.

The book starts out with a really nice overview of DDD. By the time you are done the first chapter you have a pretty good high level picture of what DDD is all about. One topic he really drives home is Ubiquitous Language.

Ubiquitous Language is a shared team language that defines a certain domain. When you are reading about Ubiquitous Language it may seem like something that just happens on its own. It isn't. An explicit domain language should be defined, it should not just be allowed to implicitly come about. This same concept has been around for years in Water Fall, Unified Process, RUP, and other processes. It has always been a very important part of the software development process, so don't discount it.

Chapter 1 also does a great job of providing tips on how to show the business value of using DDD. The author has a clear understanding that without the support of the business you aren't going to get very far with your project, and in order to get them onboard you need to show them what they will gain by supporting DDD.

The remaining chapters dig into the details of DDD. I have listed the chapters below. Their titles are pretty self-explanatory.

Chapter 1. Getting Started with DDD
Chapter 2. Domains, Subdomains, and Bounded Contexts
Chapter 3. Context Maps
Chapter 4. Architecture
Chapter 5. Entities
Chapter 6. Value Objects
Chapter 7. Services
Chapter 8. Domain Events
Chapter 9. Modules
Chapter 10. Aggregates
Chapter 11. Factories
Chapter 12. Repositories
Chapter 13. Integrating Bounded Contexts
Chapter 14. Application
Appendix A. Aggregates and Event Sourcing: A+ES

I have seen a lot of teams that could not build software with UP or RUP adopt Scrum in hopes that changing the process will make a difference. It never does. There are a variety of reasons including not doing any architecture, not having experienced developers with the right skill sets, not having the right business users involved, not having the requirements elicitation skills needed, and the list can go on and on. The author clearly understands Scrum is not a silver bullet. I mention this because DDD done correctly can give agile processes a much better chance at success, but you must have the skills on the team in order pull it off.

I was really glad to see the author included a chapter on architecture. The author does a great job of covering a ton of architectural styles and patterns. Patterns, styles, and topic found in the Architecture chapter include Layers Architecture with the Dependency Inversion Principle, Hexagonal Architecture, SOA environment, REST, Data Fabric, Grid-Based Distributed Cache, and CQRS.

Every chapter is an in depth look at the topic of the given chapter. I did not leave any of the chapters feeling like I missed something. I have read both Domain-Driven Design: Tackling Complexity in the Heart of Software and Patterns of Enterprise Application Architecture, and I had both handy for looking up references to them. It is not necessary to read them first, but it did help that I had.

I am not going to say using DDD is easy, but I will say this book can definitely get you to where you can successfully use it. The author's writing style is really good and he is good at making the book entertaining. I will however say this, be prepared to read the entire book if you want to get to that point of successfully using DDD. There is a lot to learn, but it is worth it.

I highly recommend this book to every software architect and developer. Even if you don't go all out DDD there is a ton of great advice and wisdom found in this book that will help you improve your skills.

Implementing Domain-Driven Design

Read the original blog entry...

More Stories By Tad Anderson

Tad Anderson has been doing Software Architecture for 18 years and Enterprise Architecture for the past few.

@MicroservicesExpo Stories
In his session at 19th Cloud Expo, Claude Remillard, Principal Program Manager in Developer Division at Microsoft, contrasted how his team used config as code and immutable patterns for continuous delivery of microservices and apps to the cloud. He showed how the immutable patterns helps developers do away with most of the complexity of config as code-enabling scenarios such as rollback, zero downtime upgrades with far greater simplicity. He also demoed building immutable pipelines in the cloud ...
Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more business becomes digital the more stakeholders are interested in this data including how it relates to business. Some of these people have never used a monitoring tool before. They have a question on their mind like “How is my application doing” but no id...
In IT, we sometimes coin terms for things before we know exactly what they are and how they’ll be used. The resulting terms may capture a common set of aspirations and goals – as “cloud” did broadly for on-demand, self-service, and flexible computing. But such a term can also lump together diverse and even competing practices, technologies, and priorities to the point where important distinctions are glossed over and lost.
Information technology is an industry that has always experienced change, and the dramatic change sweeping across the industry today could not be truthfully described as the first time we've seen such widespread change impacting customer investments. However, the rate of the change, and the potential outcomes from today's digital transformation has the distinct potential to separate the industry into two camps: Organizations that see the change coming, embrace it, and successful leverage it; and...
Monitoring of Docker environments is challenging. Why? Because each container typically runs a single process, has its own environment, utilizes virtual networks, or has various methods of managing storage. Traditional monitoring solutions take metrics from each server and applications they run. These servers and applications running on them are typically very static, with very long uptimes. Docker deployments are different: a set of containers may run many applications, all sharing the resource...
Join Impiger for their featured webinar: ‘Cloud Computing: A Roadmap to Modern Software Delivery’ on November 10, 2016, at 12:00 pm CST. Very few companies have not experienced some impact to their IT delivery due to the evolution of cloud computing. This webinar is not about deciding whether you should entertain moving some or all of your IT to the cloud, but rather, a detailed look under the hood to help IT professionals understand how cloud adoption has evolved and what trends will impact th...
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his session at @DevOpsSummit 19th Cloud Expo, Eric Robertson, General Manager at CollabNet, showed how customers are able to achieve a level of transparency that enables everyone fro...
Internet of @ThingsExpo, taking place June 6-8, 2017 at the Javits Center in New York City, New York, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. @ThingsExpo New York Call for Papers is now open.
The 20th International Cloud Expo has announced that its Call for Papers is open. Cloud Expo, to be held June 6-8, 2017, at the Javits Center in New York City, brings together Cloud Computing, Big Data, Internet of Things, DevOps, Containers, Microservices and WebRTC to one location. With cloud computing driving a higher percentage of enterprise IT budgets every year, it becomes increasingly important to plant your flag in this fast-expanding business opportunity. Submit your speaking proposal ...
You have great SaaS business app ideas. You want to turn your idea quickly into a functional and engaging proof of concept. You need to be able to modify it to meet customers' needs, and you need to deliver a complete and secure SaaS application. How could you achieve all the above and yet avoid unforeseen IT requirements that add unnecessary cost and complexity? You also want your app to be responsive in any device at any time. In his session at 19th Cloud Expo, Mark Allen, General Manager of...
"Dice has been around for the last 20 years. We have been helping tech professionals find new jobs and career opportunities," explained Manish Dixit, VP of Product and Engineering at Dice, in this SYS-CON.tv interview at 19th Cloud Expo, held November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA.
Application transformation and DevOps practices are two sides of the same coin. Enterprises that want to capture value faster, need to deliver value faster – time value of money principle. To do that enterprises need to build cloud-native apps as microservices by empowering teams to build, ship, and run in production. In his session at @DevOpsSummit at 19th Cloud Expo, Neil Gehani, senior product manager at HPE, discussed what every business should plan for how to structure their teams to delive...
Rapid innovation, changing business landscapes, and new IT demands force businesses to make changes quickly. In the eyes of many, containers are at the brink of becoming a pervasive technology in enterprise IT to accelerate application delivery. In this presentation, attendees learned about the: The transformation of IT to a DevOps, microservices, and container-based architecture What are containers and how DevOps practices can operate in a container-based environment A demonstration of how ...
As we enter the final week before the 19th International Cloud Expo | @ThingsExpo in Santa Clara, CA, it's time for me to reflect on six big topics that will be important during the show. Hybrid Cloud This general-purpose term seems to provide a comfort zone for many enterprise IT managers. It sounds reassuring to be able to work with one of the major public-cloud providers like AWS or Microsoft Azure while still maintaining an on-site presence.
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his general session at @DevOpsSummit at 19th Cloud Expo, Phil Hombledal, Solution Architect at CollabNet, discussed how customers are able to achieve a level of transparency that e...
Much of the value of DevOps comes from a (renewed) focus on measurement, sharing, and continuous feedback loops. In increasingly complex DevOps workflows and environments, and especially in larger, regulated, or more crystallized organizations, these core concepts become even more critical. In his session at @DevOpsSummit at 18th Cloud Expo, Andi Mann, Chief Technology Advocate at Splunk, showed how, by focusing on 'metrics that matter,' you can provide objective, transparent, and meaningful f...
Between 2005 and 2020, data volumes will grow by a factor of 300 – enough data to stack CDs from the earth to the moon 162 times. This has come to be known as the ‘big data’ phenomenon. Unfortunately, traditional approaches to handling, storing and analyzing data aren’t adequate at this scale: they’re too costly, slow and physically cumbersome to keep up. Fortunately, in response a new breed of technology has emerged that is cheaper, faster and more scalable. Yet, in meeting these new needs they...
@DevOpsSummit taking place June 6-8, 2017 at Javits Center, New York City, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. @DevOpsSummit at Cloud Expo New York Call for Papers is now open.
Logs are continuous digital records of events generated by all components of your software stack – and they’re everywhere – your networks, servers, applications, containers and cloud infrastructure just to name a few. The data logs provide are like an X-ray for your IT infrastructure. Without logs, this lack of visibility creates operational challenges for managing modern applications that drive today’s digital businesses.
Keeping pace with advancements in software delivery processes and tooling is taxing even for the most proficient organizations. Point tools, platforms, open source and the increasing adoption of private and public cloud services requires strong engineering rigor – all in the face of developer demands to use the tools of choice. As Agile has settled in as a mainstream practice, now DevOps has emerged as the next wave to improve software delivery speed and output. To make DevOps work, organization...