I have been studying Clean Architecture (CA) by Robert C. Martin and have found it quite useful in promoting architectural standards for large applications. Through implementation of a case study, I have a bit of experience of how it can help build applications that are more flexible, robust and scalable. Finally I have also come into grips with its potential shortcomings (many of which are outlined in this excellent response).
My question, though, is how Clean Architecture relates to Domain Driven Design (DDD) by Eric Evans. While not quite as familiar with DDD, I have noticed many similarities between DDD and CA. So here are my questions:
- Are there any differences between CA and DDD (other than their naming scheme)?
- Should they be used in tandem, drawing insight from both, or should one be used over the other?
From research, the only thing I was able to find on this was that CA "uses higher level of abstraction on the business objects" sourced from here.