TL;DR: Advisor-driven plan selection can cut permission check time from 11,175 µs to 182 µs in a wide fan-out scenario and reduce memory from 208 KB to 7.9 KB, according to Authzed’s SpiceDB query planner benchmarks, while dispatch choices remain a major tuning area. The result is a clearer picture of where ReBAC performance improves, and where planner decisions still need refinement.
At a glance
What this is: NHI Mgmt Group's analysis, drawing on Authzed's blog post: SpiceDB's query planner uses advisors, branch reordering, arrow rotation, and reachability pruning to make ReBAC permission checks faster, especially in wide fan-out scenarios.
Why it matters: IAM and platform teams that rely on relationship-based access control need to understand how query planning affects latency, cache behaviour, and dispatch decisions at scale.
Context
Permission checks in ReBAC are graph traversals, so performance depends on how quickly the system can find the right path through relationships, not just on whether the policy is correct. In large schemas, a poor plan can multiply work across branches and hops before the engine reaches a decision.
This article focuses on the planning layer inside SpiceDB, where advisors choose traversal order and dispatch decides whether a subproblem should execute locally or on another node. For IAM teams, that matters because permission evaluation cost can become a real part of authorization design, especially when schemas create wide fan-out or deep recursion.
The operational question is no longer only whether ReBAC can express the policy. It is also whether the engine can evaluate that policy efficiently enough for the workload shape you actually run.
Key questions
Q: How should teams tune ReBAC schemas for large fan-out permission checks?
A: Start by measuring how relationship cardinality changes traversal cost, then test whether arrow reversal or branch reordering reduces the number of intermediate hops. The goal is not only correctness but predictable latency under real data shapes, because wide fan-out can make a valid policy unnecessarily expensive to evaluate.
Q: How do you know if dispatch is helping authorization performance?
A: Dispatch is helping when repeated subproblems are reused often enough to offset network and serialization cost. If the same work is not being cached and replayed, dispatch can become slower than local evaluation. The right metric is end-to-end latency plus reuse rate, not cache size by itself.
Q: What do IAM teams get wrong about permission graph performance?
A: They often assume that a correct permission model will also be operationally efficient. In practice, depth, fan-out, and branch ordering can create very different runtime costs, so teams need to test how schemas behave under realistic relationship density instead of relying on functional tests alone.
Q: Why do relationship-based access control systems need query planning?
A: Because ReBAC authorization is graph traversal, and graph traversal becomes expensive when the engine explores the wrong side of a relationship or evaluates unnecessary branches. Query planning reduces that waste by choosing a cheaper path, which directly improves speed and memory use.
Technical breakdown
How SpiceDB query planning reduces graph traversal cost
SpiceDB evaluates ReBAC permissions as graph reachability, which means every relation hop creates a subproblem the engine can solve independently. The query planner uses advisors to choose a cheaper evaluation path before those hops are executed. In the article, the static advisor relies on generic estimates, while the count advisor uses observed ratios from prior calls to estimate which side of an arrow is smaller in practice. That matters because the cost of a permission check is often dominated by how much of the graph the engine explores before it can short-circuit.
Practical implication: model permission graphs so the planner can exploit selectivity rather than forcing broad traversal from the wrong side.
Why arrow reversal and branch reordering change authorization latency
Arrow reversal is the planner’s version of join-order selection. For an arrow expression, the engine can evaluate left-to-right or right-to-left, and the better choice is usually the one that enumerates the smaller set first. Branch reordering applies the same logic to unions and intersections: try the most likely grant branch first for A + B + C, or the most selective branch first for A & B & C, so the engine can short-circuit sooner. Arrow rotation extends this by rewriting nested arrows into cheaper associative forms when the semantics stay the same.
Practical implication: if you own schema design, test whether relation ordering creates avoidable fan-out before you tune storage or infrastructure.
What dispatch changes in distributed authorization
Dispatch moves a subproblem from local evaluation to another node in the SpiceDB cluster, turning query planning into a distributed caching problem as well as a CPU problem. That can trade a bit of network overhead for a larger cache win when the same subproblem appears repeatedly across requests. The article shows that this is powerful but still immature: over-dispatching can make the query slower than local execution in some datastore cases, even when the algorithmic plan itself is better. The planner is therefore not just selecting paths, it is deciding when a path is worth sending over the wire.
Practical implication: evaluate distributed authorization with both latency and cache behaviour in mind, because the fastest local plan is not always the best cluster-wide plan.
NHI Mgmt Group analysis
ReBAC performance is becoming an authorization design concern, not just an implementation detail. Once permission graphs become wide or deeply recursive, the cost of evaluation starts to shape how practical a model feels in production. That means identity architects need to treat query planning as part of access architecture, not as an afterthought delegated to the policy engine. The practitioner conclusion is simple: permission model shape now affects runtime viability.
Advisor-driven planning introduces a new tuning layer for relationship-based access control. The article shows that static estimates and observed counts can materially change traversal order, short-circuit opportunities, and memory use. That creates a governance question for IAM teams: do you understand when your schema is producing efficient plans, or are you assuming all ReBAC paths cost the same? The practitioner conclusion is to profile plan behaviour against real relationship density, not just happy-path correctness.
Dispatch turns authorization into a distributed systems problem as much as an identity problem. The planner is no longer choosing only what to ask, but where to ask it and whether the cache trade-off is worth the network cost. That is a useful direction, but it also means teams should watch for over-dispatching and local-vs-remote mismatches when evaluating scale. The practitioner conclusion is to benchmark authorization under realistic cluster topology, not only in single-node tests.
Permission graph shape now determines where the operational bottleneck appears. In some workloads, the planner can outperform the current execution path by a large margin, but in others the gains depend on recursion depth, fan-out, and whether dispatch helps or hurts. That makes schema review a performance discipline as much as a governance one. The practitioner conclusion is to review access graph patterns the same way you review data model hot spots.
Query planning is becoming the control point where ReBAC maturity is won or lost. As policy graphs grow, the deciding factor is less whether the model is expressive and more whether the engine can evaluate it predictably under load. The article’s numbers suggest that planner quality can be the difference between an elegant authorization model and an operationally fragile one. The practitioner conclusion is to treat planner metrics as part of your access-control review cycle.
What this signals
Query planning is now part of authorization governance. Teams using ReBAC need to treat evaluation cost as a design variable, not a backend curiosity. If wide fan-out or recursive relations dominate the schema, access-control reviews should include plan behaviour and not stop at policy semantics.
Dispatch should be benchmarked as a control decision, not assumed as an automatic optimization. A distributed cache can improve repeated subproblem handling, but the network path can also add overhead if the workload is not cache-friendly. The practical question is whether the authorization cluster benefits more from local execution or from cross-node reuse.
Schema shape drives performance shape. Recursive chains, wide arrows, and intersecting sets all create different pressure on the planner, so IAM teams should review permission graphs the way application teams review query plans in a database. The result is a more realistic view of where ReBAC will scale cleanly and where it will need redesign.
For practitioners
- Benchmark wide fan-out relationships Test document-to-group-to-user structures with realistic cardinality so you can see when the planner should reverse an arrow or short-circuit a branch.
- Review recursive permission chains Inspect nested parent or ancestor relations for depth that forces unnecessary traversal, then measure how much each extra hop adds to check time.
- Profile dispatch versus local execution Compare local evaluation and cluster dispatch on the same workload, because the network path can help caching in one scenario and hurt latency in another.
- Reorder high-cardinality branches first Place the most selective branch first in intersections and the most likely grant branch first in unions so short-circuiting happens earlier.
Key takeaways
- ReBAC performance depends on graph shape as much as on policy correctness, so planner behaviour belongs in authorization design reviews.
- Authzed’s benchmarks show that better planning can sharply reduce both latency and memory in wide fan-out cases, but the gains vary by scenario.
- IAM teams should test schema selectivity, recursion depth, and dispatch behaviour together before assuming a relationship model will scale cleanly.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP API Security Top 10 and MITRE ATT&CK address the attack and risk surface, while NIST CSF 2.0, NIST Zero Trust (SP 800-207) and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP API Security Top 10 | API5 — Broken Function Level Authorization | Permission checks here are about authorization path selection and enforcement efficiency. |
| Recommendation — Review authorization paths for inefficient or incorrect access checks and optimize the evaluation order. | ||
| MITRE ATT&CK | TA0007;TA0008 — Discovery; Lateral Movement | The article’s graph traversal and caching model maps to path enumeration and multi-hop access logic. |
| Recommendation — Map multi-hop access paths to TA0007 and TA0008 when reviewing how permissions propagate. | ||
| NIST CSF 2.0 | PR.AA-05 — Access Permissions, Entitlements and Authorizations | The article is directly about how authorization decisions are evaluated at runtime. |
| Recommendation — Apply PR.AA-05 to validate that permission evaluation remains efficient and correct at scale. | ||
| NIST Zero Trust (SP 800-207) | Least Privilege — Least Privilege | ReBAC planning affects how efficiently least-privilege access can be enforced and checked. |
| Recommendation — Use least-privilege design to minimise broad relationship paths that inflate check cost. | ||
| CIS Controls v8 | CIS-5 — Account Management | The performance discussion is rooted in identity and access evaluation for users and groups. |
| Recommendation — Use CIS-5 to keep identity and group relationships manageable for authorization systems. | ||
Key terms
- Relationship-Based Access: An access model where entitlements are justified by the current business relationship, such as employee, contractor, student, vendor, or service account status. In practice, the relationship defines scope, duration, ownership, and review requirements.
- Query planner: A query planner is the component that decides which order and direction to evaluate parts of an authorization request. In graph-based access control, it turns reachability into a cost-based routing problem, choosing paths that can reduce fan-out, short-circuit sooner, and limit unnecessary work.
- Dispatch: Dispatch is the act of sending a subproblem to another node or service for evaluation instead of resolving everything locally. In clustered authorization systems, it can improve caching and throughput, but only when the reused work outweighs the overhead of network transfer and coordination.
- Fan-out: Fan-out is the number of downstream entities reached from a single relationship step in a graph. High fan-out increases the number of candidate paths an authorization engine must evaluate, which can raise latency and memory use even when the final permission result is simple.
Deepen your knowledge
NHI governance, agentic AI identity, and machine identity lifecycle are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are responsible for identity security strategy or NHI governance in your organisation, it is worth exploring.
Published by the NHIMG editorial team on June 10, 2026.
Updated on October 10, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org