Authzed Blog

authzed.com · Company blog · on HN since 2021

Authzed, maker of a Google Zanzibar-style permissions database, writes about authorization systems, Zanzibar, and distributed databases.

What HN saysHN commenters link it for its annotated Zanzibar paper and its list of competing implementations; the founder joins threads and the company posts job ads.
34HN people shared it
18linked it in comments
49stories submitted
584story points
4 months agolast shared
2021people per year2026

Most-shared posts

  1. 1
    Homepage
    7 people · first shared 2021
  2. 2
    The Annotated Google Zanzibar Paper
    4 people · 11 points · first shared 2022 · 1 comments on HN
  3. 3
    What Is Zanzibar? Google's Internal Permission Service
    4 people · 1 points · first shared 2021 · discussion on HN
  4. 4
    Onboarding with an M1
    3 people · 166 points · first shared 2021 · 161 comments on HN
  5. 5
  6. 6
    New Enemies
    3 people · 2 points · first shared 2021 · discussion on HN
  7. 7
    Acl filtering in authzed
    3 people · first shared 2021
  8. 8
    Caveats: A Scalable Solution for Policy
    2 people · 9 points · first shared 2022 · 1 comments on HN
  9. 9
    The Day Benjamin Franklin Broke Our CI
    2 people · 7 points · first shared 2024 · 1 comments on HN
  10. 10
  11. 11
  12. 12
    What should my startup build next?
    2 people · 2 points · first shared 2021 · discussion on HN
  13. 13
    Zanzibar Implementations
    2 people · 2 points · first shared 2022 · discussion on HN
  14. 14
  15. 15
    Writing relationships to spicedb
    2 people · first shared 2022

What HN people wrote when they linked it

jakemoshenko · 2022-02-01
Authzed (YC W21) | Senior Site-Reliability Engineer (SRE) | NYC, Remote USA | Full-Time | https://authzed.com/ 20 milliseconds at the 99.5 percentile and five-nines (99.999) of uptime. Those are our goals for our globally-distributed permissions system as a service. If you’re interested in helping us achieve these goals, we would like to talk. We’re currently using best-in-class open source solutions on the public cloud for delivering this vision: Kubernetes, CockroachDB, PostgreSQL, Prometheus, Pulumi, Cuelang, Let’s Encrypt, etc. As part of our small team, you will help to build our application platform, delivery pipelines, data architecture, and the application itself. You should be passionate about both software development and infrastructure. In this role you will be required to code. You will also participate in our on-call rotation which is responsible for the health of our highly-available globally-distributed service. About the Company At Authzed, we’re solving application permissions. We’re building a highly available, highly reliable, multi-tenant permissions system as a service which is deployed globally. Modeled after Google’s Zanzibar, our core open-source component SpiceDB is revolutionizing the way developers build powerful, flexible permissions into any application. With our founding team formerly of Red Hat and CoreOS, open-source is deeply ingrained in the fabric of our company. https://www.workatastartup.com/jobs/47704
jzelinskie · 2021-06-24
Full disclosure: I'm a founder of Authzed (YC W21)[0], which is a productized Zanzibar system. > just want to understand what makes it "highly scalable", as it isn't clear from the article. While this post might not cover in depth why their system is scalable, the Zanzibar paper[1] and this post[2] about Zanzibar covers why similar systems are scalable. A oversimplification would be to say that finding a path between two nodes in a graph can be recursively broken down and performed in parallel -- the Authzed implementation looks roughly similar to a map reduce. >Are ALL permissions stored as an Object::relation pair? i.e. do you need to register permissions for all new entities relationships, or do you have some way of storing more dynamic permissions? Zanzibar implementations do have graph schemas (called Namespace Configs in the paper) which offer set operations for computing dynamic relationships. When you create a new user or object in your app, you typically also write a few relationships into Zanzibar and the rest of their permissions are implicitly granted through the computed definitions in your schema. If you're interested in learning more about Zanzibar, we're giving a PapersWeLove talk that will be streamed on Twitch next week: https://www.meetup.com/papers-we-love/events/278148236/ [0]: https://authzed.com [1]: https://research.google/pubs/pub48190/ [2]: https://authzed.com/blog/what-is-zanzibar/
gneray · 2025-03-25
Agreed! But you're glossing over the Zanzibar point of view on this topic, which falls back to dual-writes. That approach has a lot of downsides: "Unfortunately, when making writes to multiple systems, there are no easy answers."[0] Having spoken with the actual creators of Zanzibar, they lament the massive challenge this design presents and the heroics they undertook over 7+ years at Google to overcome them. By contrast, we're seeing lots of the best tech companies opt for approaches that let them leave the data in their source database wherever and as much as possible [1] [0] https://authzed.com/blog/the-dual-write-problem [1] https://www.osohq.com/post/local-authorization I'm founder of Oso btw.
i_play_stax · 2024-03-13
https://docs.opal.ac/ Universally, people I've met and worked with (20-30) hate writing rego (OPA). I'm always skeptical of Styra's analysis; they are literally selling you something. AuthZed looks interesting and they have good "ride along" videos in YouTube, e.g. replicating GitHub auth. https://authzed.com/
AceJohnny2 · 2023-06-25
Plugging another company that's been implementing Google-Zanzibar-like auth tech: https://authzed.com/ They've posted a number of interesting articles on the topic here, such as this one listing competing implementations (but 2y old): https://authzed.com/blog/zanzibar-implementations
rektide · 2023-06-25
SpiceDB/Authzed has "Lookup"s. There's LookupResources for finding what a user has access to, and LookupSubjects now too to see who has access to a resource. Great capability. https://authzed.com/blog/lookup-subjects
leetrout · 2022-01-02
Have you seen https://authzed.com/? I know it's not what you are saying but seems relevant if you haven't already seen it. I think there is a ton of room for new players in the authn and authz markets. I like how narrow you are focused.
samkim · 2021-04-16
Went through the same process except with an M1 Macbook Pro. My coworkers volunteered me to see if we could get our dev stack building and running on ARM with hopes they could eventually dump their older x86 Macbook Pros, which run loud and hot. It was a bit of a process but once we got it working, developing on the M1 has been great. Captured notes on the process here in case it's helpful for anyone later: https://authzed.com/blog/onboarding-with-an-m1/
jschorr · 2025-10-21
Reconciling externalized authz with search is actually quite a challenging problem. For standard externalized authz, the recommendation is some form of pre-filtering or post-filtering [1], for which we actually built LookupResources (pre-filtering) and CheckBulkPermission (post-filtering) into SpiceDB. However, as you mentioned, life is easier when the main database can handle everything, so we actually built a solution in that space called Materialize [2], which heavily denormalizes the authorization data and allows for joining within application databases such as Postgres. My colleague Evan actually put together a really cool video about using it with Gitea [3]. Recognizing that even with Materialize, however, the need to consume events can be a bit annoying, I've been doing some work to allow Postgres itself to do native JOINs against SpiceDB (and other operations). I demo it briefly in our recent announcements video [4] and I think it effectively solves this problem within Postgres, while still allowing for all the benefits (scale, performance, redundancy, distribution) of externalized authz. [1]: https://authzed.com/docs/spicedb/modeling/protecting-a-list-endpoint [2]: https://authzed.com/products/authzed-materialize [3]: https://www.youtube.com/live/u3i1SEd9Ll8?si=mCz5mZterxthoEwj [4]: https://www.youtube.com/live/uz_gxz3whS0?si=g4NUZAIltYVyFzYj&t=349… Disclaimer: I'm cofounder and CTO at AuthZed and we build SpiceDB and Materialize
infogulch · 2024-10-05
I was thinking Kanidm [1] for authentication and SpciceDB [2] for authorization would be a good combo, but I haven't gotten around to trying it yet. [1]: https://kanidm.com/ [2]: https://authzed.com/docs/spicedb/getting-started/discovering-spicedb
pgt · 2024-08-13
Not to be confused with SpiceDB by AuthZed: https://authzed.com/spicedb
FBISurveillance · 2023-07-13
Probably via a Zanzibar-based system, excerpt from the Zanzibar paper [1]: > [...] useful common infrastructure can be built on top of a unified access control system, in particular, a search index that respects access control and works across applications. [1] https://authzed.com/zanzibar/28Sa8hWHLG:e:1I
zcw100 · 2023-06-26
... or the annotated one from the Authzed folks https://authzed.com/zanzibar
kondro · 2021-09-30
An easy to digest article: https://authzed.com/blog/what-is-zanzibar/ tl;dr: Highly scalable RBAC/ABAC
wikibob · 2021-08-29
Check out this comprehensive explanation from TailScale.io, a wireguard VPN startup, on how they use Zanzibar https://tailscale.com/blog/rbac-like-it-was-meant-to-be/ And see also this talk explaining the Zanzibar paper from Authzed.com a startup that will sell you Zanzibar as a service. https://authzed.com/blog/what-is-zanzibar/
turtles3 · 2023-08-18
> Additionally, there are folks using SpiceDB today by replicating denormalized checks back into their database (e.g. Postgres) or search index (e.g. Elastic) so that you can filter them natively. This is the combination of the aforementioned Lookup APIs with our Watch API. While this strategy requires moving parts, it is necessary beyond a particular scale which is well beyond the point at which policy engines typically fall over. Would you say that because of this, Zanzibar engines like spicedb only become useful on systems of a certain size / complexity? Fundamentally you run into data synchronization issues whether you are syncing denormalized data back to your db via Watch or whether you write the relationships to both data stores in the first place. This article[0] on the latter topic touches on this, but brushes over some tricker parts of implementing such a thing correctly (eg. 2 writes section only covers insert not update or delete which is generally less harmful to have a ghost update that persists in spicedb, streaming updates brushes over some major footguns). Granted there's nothing unique to spicedb in this sort of complexity, but by nature of being a db, using spicedb mandates that users must take on the complexity. Is it then fair to say that it is appropriate to use spicedb once a project reaches a certain size / complexity, or would you expect a startup to adopt it from the beginning? [0] https://authzed.com/blog/writing-relationships-to-spicedb
evancordell · 2022-08-05
This might just be a language issue, because different sources use different words for consistency guarantees. > Accord only avoids enforcing an ordering (2) on transactions that are commutative If the committed state in the database records the transactions in a different order than an external observer could have observed them being accepted by the database, then you don't have what Spanner calls "external consistency" - I thought this is what you mean when you say "global strict serializability", but now I'm not so sure. Cockroach does enforce this property, but only for transactions that touch the same (key-value layer) keys. They talk about this a bit in their article on "life without atomic clocks"[0]. In SpiceDB[1], we take advantage of this property (when Cockroach is selected as the backing datastore) to give us external consistency by forcing all transactions to overlap. This prevents the New Enemy Problem[2], which is what Google calls the problem of transaction ordering when seen from an authorization perspective. Your description of Accord sounded very similar to how Cockroach works from this perspective, but there may be some subtlety that I am missing. Cockroach exposes snapshots via "as of system time" queries, which can expose "bad" ordering back to the client in future queries - if Accord doesn't allow snapshot queries then I suppose it wouldn't be an issue. [0]:…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close