Check out the Google Zanzibar paper, annotated with expert commentary!

AuthZed Blog

Articles from the AuthZed team about SpiceDB, Fine Grained Authorization, Google Zanzibar, and engineering culture.

Maximizing CockroachDB Performance: Our Journey to 1 Million QPS

/assets/team/evan-cordell.jpg
Evan Cordell
June 7, 2023
Learn how AuthZed scaled SpiceDB on CockroachDB to 1 million authorization events per second with our now open-sourced advanced connection pooler, crdbpool. Discover the challenges we faced and how we solved them in our journey to maximizing CockroachDB performance.
12 minutes

ABAC on SpiceDB: Enabling Netflix’s Complex Identity Types

/images/chris-wolfe.jpeg
Chris Wolfe and 2 others
May 18, 2023
The authorization team at Netflix recently sponsored work to add Attribute Based Access Control (ABAC) support to AuthZed’s open source Google Zanzibar inspired authorization system, SpiceDB. Netflix required attribute support in SpiceDB to support core Netflix application identity constructs. This post discusses why Netflix wanted ABAC support in SpiceDB, how Netflix collaborated with AuthZed, the end result–SpiceDB Caveats, and how Netflix may leverage this new feature.
10 minutes

Introducing: Fine-Grained Access Management

/assets/team/victor-roldan-betancort.jpg
Victor Roldan Betancort
April 27, 2023
The systems we build at AuthZed are the direct result of feedback from our community and customers. Because security is the core of our flagship product, SpiceDB, we take feedback on this topic very seriously. We’ve heard you, and today we’re proud to introduce a better way to secure AuthZed customers’ client applications accessing the SpiceDB API: **Fine-Grained Access Management** (FGAM).
3 minutes

Pitfalls of JWT Authorization

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
April 18, 2023
At AuthZed, we believe there’s a time and place for every piece of technology; the tricky part is determining if your use case actually is the time and place. For many years, there’s been a strong argument by domain experts against using JWTs for web sessions. While this campaign has succeeded to help improve the security of the web frontend, there hasn’t been an equivalent campaign for the backend. While building [SpiceDB](https://github.com/authzed/spicedb), we’ve surveyed many backend developers only to find that many don’t know the pitfalls of JWTs or even that alternatives exist. SpiceDB is an open source project that implements one such alternative called _centralized authorization_. Because of this, I’ll be sure to include exactly how a centralized strategy accounts for the pitfalls with JWTs, too!
6 minutes

Top-3 Most Used SpiceDB Caveat Patterns

/assets/team/victor-roldan-betancort.jpg
Victor Roldan Betancort
February 16, 2023
The top-3 most used caveats we've seen out in the wild
3 minutes

CockroachDB 23.1 new defaults impact SpiceDB

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
February 15, 2023
SpiceDB is a fairly unique database when it comes to consistency. Most databases implement a pattern called MVCC. Without going too deeply, when a query is made to an MVCC database, it runs that query against a snapshot of the data it manages. SpiceDB not only implements MVCC, but also supports the ability to specify the desired consistency on each request.
4 minutes

Modeling Google Cloud IAM in SpiceDB

/assets/team/jake-moshenko.jpg
Jake Moshenko
January 19, 2023
We often get asked about how you would model Infrastructure as a Service (IaaS) permissions in our SpiceDB Schema Language. Since we know that Google Cloud IAM uses Zanzibar internally, it should be possible to use relationship based access control to get the desired effect.
10 minutes

Google Zanzibar Through Our Eyes

/assets/team/jake-moshenko.jpg
Jake Moshenko
December 8, 2022
Understanding Google's Zanzibar paper the way the Authzed team does.
2 minutes

Caveats: A Scalable Solution for Policy

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
November 17, 2022
Our journey adding ABAC-like policies to SpiceDB
6 minutes

Getting Database Connection Draining Right

/assets/team/victor-roldan-betancort.jpg
Victor Roldan Betancort
November 7, 2022
An intro to database connection draining
10 minutes

LookupSubjects and SpiceDB v1.12.0

/assets/team/joey-schorr.jpg
Joey Schorr
September 20, 2022
Product Updates for July & August
2 minutes

SpiceDB Operator is Open Source

/assets/team/evan-cordell.jpg
Evan Cordell
September 8, 2022
We're open sourcing SpiceDB Operator!
2 minutes

How we moved SpiceDB to run in-browser and decreased request latencies by 90%

/assets/team/joey-schorr.jpg
Joey Schorr
August 25, 2022
Running the SpiceDB development system within the browser via WebAssembly
8 minutes

Automatic release notification in SpiceDB and zed

/assets/team/joey-schorr.jpg
Joey Schorr
May 18, 2022
The engineering behind notifying users about updates to SpiceDB and zed
8 minutes

Your commonly-held technical opinion is actually wrong! (Read on to discover why it’s really mostly right)

/assets/team/evan-cordell.jpg
Evan Cordell
March 30, 2022
This blog post challenges your preconceived notions while subtly re-affirming that you were right all along
2 minutes

Have you met...our HTTP API?

/assets/team/sam-kim.jpg
Sam Kim
March 17, 2022
A quick guide to configure and try the Authzed HTTP API
4 minutes

Check it out #2: How intersections and exclusions are computed in SpiceDB and Authzed

/assets/team/joey-schorr.jpg
Joey Schorr
March 3, 2022
Walking the graph to resolve permissions answers
7 minutes

Our GitHub merge workflow

/assets/team/sam-kim.jpg
Sam Kim
February 24, 2022
And why we’d be happy to replace it.
5 minutes

Post-Mortem: Feb 16 2022

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
February 22, 2022
A deep-dive into our elevated latency last week
6 minutes

Writing relationships to SpiceDB

/assets/team/joey-schorr.jpg
Joey Schorr
February 17, 2022
A tale of writing to two databases
7 minutes

Online Schema Migrations in SpiceDB

/assets/team/evan-cordell.jpg
Evan Cordell
February 3, 2022
How to perform online schema migrations with SpiceDB or Authzed.
5 minutes

M1 to the Max

/assets/team/sam-kim.jpg
Sam Kim
January 27, 2022
Part 2 of an unexpected series on our development environment.
6 minutes

Using GitHub to manage your first CVE

/assets/team/joey-schorr.jpg
Joey Schorr
January 13, 2022
Creating a formal process for handling security vulnerabilities using GitHub
12 minutes

Why model my users in SpiceDB?

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
January 5, 2022
Details on one of SpiceDB's largest deviations from Zanzibar
3 minutes

Unveiling wildcard permissions in SpiceDB

/assets/team/joey-schorr.jpg
Joey Schorr
December 23, 2021
A public display of development
3 minutes

Consistent Hash Load Balancing for gRPC

/assets/team/evan-cordell.jpg
Evan Cordell
November 24, 2021
Extending grpc-go with a custom resolver and loadbalancer implementations.
3 minutes

The Architecture of SpiceDB

/assets/team/jake-moshenko.jpg
Jake Moshenko
November 17, 2021
The architecture and code of SpiceDB.
11 minutes

Migrating from PostgreSQL to Centralized Authorization with SpiceDB

/assets/team/evan-cordell.jpg
Evan Cordell
November 10, 2021
Learn how to bootstrap SpiceDB from playground or PostgreSQL.
4 minutes

User Defined Roles

/assets/team/jake-moshenko.jpg
Jake Moshenko
October 27, 2021
Modeling user-defined roles in Authzed schema.
9 minutes

We picked Go for the Ecosystem

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
October 20, 2021
Why we're building our company on Go in 2021
3 minutes

The One Crucial Difference Between Spanner and CockroachDB

/assets/team/evan-cordell.jpg
Evan Cordell
October 14, 2021
How We Reproduce and Prevent the New Enemy problem in SpiceDB.
13 minutes

Syntax and Semantics

/assets/team/joey-schorr.jpg
Joey Schorr
July 21, 2021
Semantic highlighting in Monaco
8 minutes

Defining Systems Lucidly

/assets/team/joey-schorr.jpg
Joey Schorr
July 14, 2021
Authzed's new configuration language
3 minutes

Zanzibar Implementations

/assets/team/sam-kim.jpg
Sam Kim
July 6, 2021
Reviewing the current landscape of Zanzibar implementations.
1 minutes

ACL Filtering in Authzed

/assets/team/joey-schorr.jpg
Joey Schorr
June 23, 2021
How Authzed enables filtering of objects by subject
6 minutes

Maintaining a Stable Protobuf API

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
June 15, 2021
How we're avoiding breaking users without compromising developer UX
3 minutes

We spent hours naming this blog post

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
June 9, 2021
Why names matter regardless of how technically sophistocated a product is.
4 minutes

Joining a Startup During a Pandemic

/assets/team/sam-kim.jpg
Sam Kim
May 26, 2021
My experience starting at Authzed during the pandemic.
5 minutes

The Six Month Profile Page

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
May 18, 2021
A story of how a seemingly simple feature can lead down a permissions rabbit-hole.
4 minutes

What is Google Zanzibar?

/assets/team/jake-moshenko.jpg
Jake Moshenko
May 12, 2021
Understanding the Google Zanzibar paper.
11 minutes

Show() && Tell()

/assets/team/joey-schorr.jpg
Joey Schorr
May 5, 2021
Building the animated code example
12 minutes

Onboarding with an M1

/assets/team/sam-kim.jpg
Sam Kim
April 7, 2021
My experience starting at Authzed and setting up an M1 MacBook Pro.
5 minutes

Check it out: How permissions are answered in SpiceDB and Authzed

/assets/team/joey-schorr.jpg
Joey Schorr
March 17, 2021
Walking the graph to resolve permissions answers
9 minutes

Identity Is Not the Foundation of Permission Systems

/assets/team/jimmy-zelinskie.jpg
Jimmy Zelinskie
March 3, 2021
Authentication systems are insufficient for authorization.
6 minutes

Learning through play

/assets/team/joey-schorr.jpg
Joey Schorr
February 25, 2021
Building the Authzed Playground
14 minutes

New Enemies

/assets/team/jake-moshenko.jpg
Jake Moshenko
February 17, 2021
Solving the new enemy problem.
8 minutes

Introducing Authzed

/assets/team/jake-moshenko.jpg
Jake Moshenko
February 10, 2021
Our Journey to Permissions as a Service.
7 minutes