Your approach is good but what you should mention is that in DDD there is a concept of Aggregates and a necessary rule for it to have only one transaction on one Aggregate (see here Page 7: https://www.dddcommunity.org/wp-content/uploads/files/pdf_articles/Vernon_2011_2.pdf). The reason why this is so important is that people build architectures calling tons of lambdas to keep their objects in sync while missing the point of event driven applications and create non scalable systems