ZITADEL engineering and design principles
- Be transparent about your decisions
 - Embrace stateless application design
 - System of records is the event store
 - Everything else needs to be able to be regenerated
 - Try not so solve complex problems outside of the IAM Domain
 - Use a scalable storage for the event store and read models
 - Try to be idempotent whenever possible
 - Reduce necessity of external systems or dependencies as much as possible
 - Embrace automation
 - Design API first
 - Optimize all components for day-two operations
 - Use only open source projects with permissive licenses
 - Don't roll your own crypto algorithm
 - Embrace (industry) standard as much as possible
 - Make use of platform features
 - Be able to run with a CDN and WAF
 - Releases utilized semantic versioning and release whenever feasible