Goals
- Eliminate code, not hide it
- If we can’t eliminate the code, make it easy to customize
- Use data-driven logic instead of writing code
- Integrate data across the business, not silo it in applications/services
- Build sustainable solutions designed to change
With these goals in mind, we established a set of architecture and design principles that laid a firm foundation for the DAS Architecture.
Architecture Principles
- Security and privacy by design in every component
- Defense in depth with overlapping security mechanisms
- Maintain a consistent interface so that services can be easily composed
- Maintain and enforce a well-defined separation of concerns between components
- Single dependency between peripheral services and Data at Rest
- Implement generic components that promote reusability
- Converge on the best available technology and platform
- Manage a minimal “best of breed” stack for your organization
- Standardize how each technology is used and share best practice
- Update architecture as better technologies become available
- Focus on sustainability in the face of constant change:
- Business needs
- Technology innovation
- People
Design Principles
- Design reusable components that can be easily configured using data
- Small services that are easily built, tested, deployed, maintained, and replaced
- Avoid writing code where possible
- Fault tolerant implementation to reduce errors
- Extensive error logging to isolate errors
- Automated testing to increase and maintain code quality
- Can be deployed with High-Availability
- Can be BOTH Vertically and Horizontally scalable
- Use automated CI/CD pipeline tools