These principles are an evolution of the GDS Architecture approach
- Simplicity for users is worth some complexity in the system
- Users need available and resilient services
- User experience should degrade gracefully
- Don’t break the internet (or peoples bookmarks)
- All changes should be transparent
- Breaking changes must be versioned
- Make use of open standards (as outlined by GDS)
- Don’t use proprietary formats
- Open by default - APIs included
- Avoid vendor lock in where possible, but not at the expense of the operational burden of not using managed services
- Don’t reinvent the wheel
- Consume 3rd party APIs for data that isn’t ours to own
- Start small and question scope
- One step at a time (iteration)
- Security from the start
- Eat our own dog food - consume our own APIs
- Loosely coupled microservices
- All apps should be aligned to 12 Factor principles
- An app must have sole ownership of its data
- There must be a single source of truth for any data
- A little duplication is better than a little dependency
- Clear is better than clever
- A new feature is worthless if it’s not supportable
- Choose the right kind of tests for the job
- Nothing should exist that can’t be rebuilt simply