Production readiness
71Good

Estimated economic valuation

1.72M€ – 2.33M€
Security40
Code Quality60
Dependencies80
Documentation85
Observability80
Test Coverage75
Error Handling75

22 July 2026

ZITADEL: Event‑Sourced Identity & Access Management

ZITADEL is an open‑source identity and access management platform that implements full OpenID Connect, OAuth2, SAML and FIDO2 flows. Its event‑sourced architecture gives a complete audit trail and enables reliable multi‑tenant deployments. Developers appreciate the production‑grade quality, with extensive testing and observability built‑in.

ZITADEL: Event‑Sourced Identity & Access Management

Architecture and Event-Sourced Design

ZITADEL’s core is built around an event‑sourced architecture that records every state change as an immutable event in a relational event store powered by PostgreSQL. This design gives the platform a complete audit trail and enables reliable replay for diagnostics or migrations, a point highlighted in the executive summary as a significant engineering investment. The implementation lives primarily in Go, leveraging gRPC for internal service communication and connectRPC to expose both gRPC and HTTP/REST APIs, while the front‑end uses TypeScript with React‑based frameworks such as Next.js and Angular.

The monorepo is orchestrated with Nx, which enforces clear separation between domain, command and query layers and supports efficient workflows across the 5867 analyzed files. Despite these strengths, the dependency surface is substantial—593 third‑party packages—raising supply‑chain considerations that the security sub‑score of 40 reflects. Moreover, resilience patterns are applied unevenly: a circuit breaker protects Redis cache operations but is not consistently extended to other external integrations, a gap noted in the warnings and echoed in the recommendations to expand breaker and retry logic uniformly.

Observability is solid, with OpenTelemetry instrumentation feeding metrics, tracing and logs to multiple backends, and health endpoints (/healthz, /ready) support Kubernetes orchestration. To mature the architecture further, the project could adopt automated dependency scanning in its CI pipeline, document key choices via Architecture Decision Records, and extend the existing circuit breaker implementation to all outbound calls, thereby tightening the uniformity of its fault‑tolerance strategy.

Security Posture and OpenID Connect Certification

Despite its OpenID Connect certification, which confirms standards‑compliant authentication and token handling, ZITADEL’s security posture reveals both strengths and areas for improvement. The codebase shows rigorous input validation via protoc-gen-validate, relies exclusively on parameterised queries to prevent injection, and contains no hardcoded secrets in production files. However, the static analysis noted that test files still include example passwords that could be mistaken for real credentials, a detail worth sanitising before any public release.

The dependency surface is a notable concern: the project aggregates 593 third‑party packages, expanding the supply‑chain attack surface. While the dependencies sub‑score is a respectable 80, the overall security sub‑score sits at 40, indicating that other controls—such as automated vulnerability scanning in the CI pipeline—are either missing or insufficiently integrated. Implementing a routine scan for known CVEs would help curb risk introduced by this large dependency tree.

Resilience patterns are unevenly applied. A circuit breaker is present for Redis cache operations, yet the same protection is absent for other external services like PostgreSQL or external APIs. Extending this pattern uniformly, alongside clearer documentation of retry policies and timeout configurations, would raise the platform’s operational safety and bring its security posture more in line with its otherwise strong engineering foundation.

Observability, Testing and DevOps Experience

ZITADEL shows solid observability foundations: it ships OpenTelemetry integration with exporters for Prometheus, Jaeger and Zipkin, and provides health‑check endpoints at /healthz and /ready that Kubernetes can consume. The readiness sub‑score of 80 reflects this, while the test‑coverage sub‑score of 75 points to extensive integration tests that run in Docker‑based environments and benefit from the Nx monorepo toolchain. However, the dependency analysis flags a large surface of 593 third‑party packages, which enlarges the supply‑chain risk and suggests a need for automated dependency vulnerability scanning in the CI pipeline. Resilience patterns are uneven; a circuit breaker is present only for Redis cache calls, leaving other external services such as PostgreSQL or downstream APIs without uniform retry or fallback logic. The findings recommend adding mutation testing to gauge test effectiveness, documenting architecture decision records for core design choices, and expanding circuit‑breaker and retry logic across all external integrations. Operators would also benefit from explicit guidance on propagating OpenTelemetry context through service‑to‑service calls. Addressing these gaps would tighten the observability, testing and DevOps experience and move the platform toward higher operational safety.

Dependency Management and Supply Chain Considerations

ZITADEL’s codebase pulls in 593 third‑party modules, a figure highlighted in the security findings as a notable supply‑chain exposure. The dependency list spans the Go standard library, newer modules such as Gin and connectRPC, and front‑end stacks built on Next.js, React and Angular. Because the project also ships a Fumadocs documentation site and relies on Docker, Nx and shell scripts for tooling, the surface area extends across language ecosystems and build pipelines.

The production‑readiness scoring gives the dependency sub‑category a rating of 80 out of 100, signalling solid overall hygiene but leaving room for improvement. The current resilience pattern is uneven: a circuit breaker is implemented for Redis cache calls, yet the same protection is absent from other external services like PostgreSQL or OpenTelemetry exporters. The recommendations therefore call for adding automated vulnerability scanning to the CI pipeline, extending circuit‑breaker and retry logic to every outbound call, and maintaining an up‑to‑date bill of materials that can be reviewed with tools like Dependabot or GitHub’s dependency graph.