How Does This Help Me Build Maintainable Software?
Building a persistence adapter that acts as a plugin to the domain code frees the domain code from persistence details so that we can build a rich domain model.
Using narrow port interfaces, we have the flexibility to implement one port this way and another port that way, perhaps even with a different persistence technology, without the application noticing. We can even switch out the complete persistence layer, as long as the port contracts are obeyed.