Member-only story
Domain Driven Design, Git and Crypto
Reflections similarities and differences in thinking behind Domain Driven Design (DDD), version control systems like Git and crypto currency systems.
Recently I have been doing a course on Domain Driven Design (DDD). This made me make some reflections on how DDD related to other technologies that I know.
DDD is not like say object-oriented design or functional programming. Rather it is more about a way of dealing with data which needs to be made persistent. It is a natural companion to object-oriented programming, but exist at a higher level.
DDD Compared to Apple’s Core Data
I would say that Apple technologies like Core Data seems to be an implementation of a lot of the ideas in Domain Driven Design. Core Data is a way for you to make object-graphs which can be stored and loaded from disk.
What are the advantages of this? Well when you work with really large systems, you cannot simply load the whole data model into memory. Think of how disk swapping works. Only the part of your code currently…