decouple from the various dimensions that are involved: development, deployment, and operation • Like most software development/architecture, it is more art than science • It boils down to how to balance/delay the decision making process as much as possible for those items which aren’t essential • At the end of the day, a proposed architecture should reveal the use cases of the system it supports