--- title: Principles --- ### 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