- Expression of functionality from the viewpoint of business and business processes
- Naming entities from the viewpoint of the business functional area they support
- Applying normalization and logic centralization to services
- Creating the contract-first, only then think about the implementation
Once the contracts are designed first, there is a natural decoupling of contract and logic, as the contract ideally should not expose any implementation details. The separation of concerns is reached specifically by the contract-first approach as this does not allow implementation-specific details to trickle down into the contract.