Core differences between Zanzibar based solutions (Keto, OpenFGA, SpiceDB)


General Aspects

Ory/Keto OpenFGA SpiceDB Permify
Zanzibar Paper Faithfulness Medium High Super High High
Scalability Medium Medium High High
Consistency & Cache No Zookies & Distributed Cache No Zookies & Distributed Cache Supported Supported
Dev UX Average Average High High

Feature Set

Ory/Keto OpenFGA SpiceDB Permify
Disk and DB-Based Storage βœ… βœ… βœ… βœ…
Read API βœ… βœ… βœ… βœ…
Expand API βœ… βœ… βœ… βœ…
Watch API βœ… βœ… βœ… βœ…
RBAC βœ… βœ… βœ… βœ…
ReBAC βœ… βœ… βœ… βœ…
ABAC β›” 🟑 βœ… βœ…
Data Filtering β›” βœ… βœ… βœ…
Multi Tenancy β›” βœ… β›” βœ…
Hotspot Caching β›” β›” βœ… β›”
Consistent Hashring β›” β›” βœ… βœ…
Testing & Validation β›” 🟑 βœ… βœ…
Logging & Tracing 🟑 βœ… βœ… βœ…
MVCC & Performance β›” β›” βœ… βœ…
Governance & Ops Dashboard β›” β›” β›” βœ…
Partial Schema Update β›” β›” β›” βœ…
Schema Staging β›” β›” β›” βœ…
Relationship Bundles β›” β›” β›” βœ…

Compared SpiceDB

Compared OpenFGA

Compared ORY Keto

Core differences between OPA based solutions (Styra, Cerbos, Aserto, etc.)


In general, here are the major differentiations between Zanzibar-based and Opa-based solutions.

Zanzibar Based Authorization Opa Based Authorization
Nature of Access Control Natural fit for Relationship-based Access Control (ReBAC) Excels at managing contextual and attribute based policies (e.g., ABAC)
Representation of Relationships Excellent for representing hierarchies and nested relationships Can manage relationships with necessary customizations, but not inherently hierarchical
Data Volume Management Manages high volumes of data consistently Can struggle with large amounts of data without sharding
Reverse Indices Supports reverse indices Does not support reverse indices
Latency Higher due to non-locality Lower due to local deployment
Ease of Updates Less flexible for updates Highly flexible and easy to update
Ecosystem Emerging ecosystem Robust ecosystem with plugins and multiple engines
Learning Curve Moderate Can be high due to complex languages