Aggregate Roots, Entities, and Deliberate Practice
This episode has everything. Rob shares a story about the crappy website he had to use to book tickets for a park, JD is starting to plan his summer vacation in a COVID world, and then it gets technical. JD has a better understanding of Domain-Driven Design now, and the two discuss his learning from last week. This leads into a broader discussion about side projects, progress, and experience, and the two share their frustration comparing their progress with popular open source projects.
Rob plans some activities again in a world that slowly opens up, and shares his frustrating experience booking tickets for Universal Studios. JD is thinking about his summer vacation, and has decided to take a full three weeks off to recharge from the stress. It'll probably be a motorcycle vacation in Germany. The two chat about the cultural differences when it comes to holidays, especially between the US and Sweden.
Then JD gives an update on his project, reflects on his approach, and describes how he shifted from a "getting things done" to a growth mindset to enjoy the work more. This has helped push him forward exploring DDD, which the two discuss in depth. With the lessons he learnt, JD rewrote the initial version of his domain model and is making much more progress than before. One insight in particular helped redesign the domain:
Aggregates turned out to be one of the most difficult patterns to apply. There was an over-emphasis on access rules within aggregates (nobody can hold a reference to things within an aggregate apart from the aggregate root). A much more useful view at aggregates is to look at them as consistency boundaries for transactions, distributions and concurrency.
Stay in touch
Jan David: https://twitter.com/0x6a64