5 ms·
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
by jzelinskie 5y ago
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/ https://www.meetup.com/papers-we-love/events/278148236/
[0]: https://authzed.com https://authzed.com
[1]: https://research.google/pubs/pub48190/ https://research.google/pubs/pub48190/
[2]: https://authzed.com/blog/what-is-zanzibar/ https://authzed.com/blog/what-is-zanzibar/
- victor106 5y agoauthzed looks cool. Any plans to release a Java library?
- jzelinskie 5y agoOur API is gRPC, so we can easily generate some Java bindings. For a more ergonomic client, we'd have to partner to flesh something out. Feel free to put some time on our calendar, everyone on the call will be engineer that's deep in the weeds: https://calendly.com/d/mzs5-cxvx/authzed-introduction https://calendly.com/d/mzs5-cxvx/authzed-introduction
- AceJohnny2 5y agoThanks for excellent explanation! I'm disappointed your work on Authzed hasn't hit HN front page before, not for lack of trying on your part!
- jzelinskie 5y agoWe haven't done an official "Launch HN" yet. For now, we're heads-down with our early adopters fleshing out developer UX and a friendlier API. We started by implementing Zanzibar as faithfully as possible, but that doesn't make this technology widely available to developers of all walks of life.
- AceJohnny2 5y agoNevertheless, your separate posting [1] of your "What is Zanzibar" article deserved more attention, and IMHO is useful to drum up attention to your problem/solution space. [1] https://news.ycombinator.com/item?id=27143342 https://news.ycombinator.com/item?id=27143342