I love this quote by Andy Hunt
“I find aiming to make things “replaceable” far better than making things reusable. Reusable means you’re fortune-telling, trying to divine an unknowable future.”
This is what I’m aiming for as well especially when you bring in the Sacrificial Architecture. Love it.
As you create your architecture, design all components to be replaceable, not reusable. This is a whole lot easier nowadays with AWS and Lambda creating serverless masterpieces, for example.