3 ms·
Disclosure: I'm a cofounder of Authzed and one of the creators of SpiceDB, the primary strawman for graph-based authorization used in this article. I don't bel
by jzelinskie 3y ago
Disclosure: I'm a cofounder of Authzed and one of the creators of SpiceDB, the primary strawman for graph-based authorization used in this article.
I don't believe that any of the data being represented in this article is ubiquitously true, though it might be true for the users self-select into adopting Permit. There is no one sized fits all solution for authorization and we see folks self-selecting in the other direction, so I'd like to offer that take.
>Despite their advantages, deploying a Zanzibar-based graph invariably introduces a sizable and complex system into your cloud environment, often necessitating reliance on a hosted service. This dependency can instigate latency concerns and further scaling challenges.
There are plenty of happy SpiceDB open source users and on-premise Authzed customers that have no need for a hosted service.
Using a hosted service doesn't mean adding additional latency. For example, Authzed's services deploy to the same cloud datacenters as your applications, so the latency is no different from your application connecting anything else not running on the same machine.
We've helped folks migrate away from policy-based systems because having unbounded computation eventually leads to the inability to make guarantees about performance. It's easy for developers to over time add more and more logic to the sets of policies that are critical until they become too slow for some of the services that depend on them.
Lest we also not forget the complexity and scaling challenges a system that has to keep data in policy engines synchronized.
---
I'd also like to point out a few things from the comparison table:
Nature of Access Control: As stated in this article, SpiceDB supports ABAC and can model more than just RBAC and ABAC.
Reverse Indices: This is a big deal. What systems can you build without asking "Who are all the people with access to this?" and "What are all the things this person can access?".
Latency & Performance: SpiceDB guarantees runtime performance no matter the scale and complexity and operates on a consistent view of data while policy engines typically end up working on stale data. Unfortunately, this is comparing apples to oranges because the two systems are generating two different qualities of decision.
Deployment at Edge: SpiceDB and Zanzibar were designed to run at a global scale. You can run a SpiceDB cluster at each edge that share a global backing relationship store (Spanner or CockroachDB). I'm not familiar with any policy engines that were designed while considering where the data lives -- as such they require additional systems to best-effort synchronize data to those engines.
Ease of Updates: Honestly, this is purely opinion. It's quite simple to exhaustively test SpiceDB schemas to assert correctness -- play.authzed.com even generates them for you. I think it's more difficult testing turing-complete policies.
Ecosystem: "Emerging ecosystem" is sold in the article as an anti-feature when it is a feature depending on your own goals; for something to be emerging and gaining traction, it has to be seen as an improvement over existing systems. Despite calling ReBAC systems "emerging", the article does describe SpiceDB itself as mature, though.
- knpsec 3y agoWow, cool project. Spanner and CockroachDB, why not TiKV or Vitess? An open source global scale storage would be nice. TiKV specially, a key value store sounds like a great fit for a Zanzibar style system.
- jzelinskie 3y agoI might be misunderstanding your post, but CockroachDB is an OSS solution for global SpiceDB storage that we recommend for cross-cloud or global deployments outside of GCP. The team at GitHub actually contributed MySQL support as they use Vitess. No reason why it doesn't work with Vitess today, but we haven't put those codepaths under a microscope yet to squeeze out the best performance. I'd love to see what we could do with TiKV and I agree it looks like a good fit. I think it's just less in demand because fewer folks know how to operationalize it.
- knpsec 3y agoNice to know Vitess may be supported & TiKV is on your radar, we'll take a closer look. Not sure if the Business Source License is considered an OSS license, but CockroachDB proprietary license and enterprise feature segregation does pose some challenges.
- orweis 3y agoHi jzelinskie, Or from Permit here - The overall tone of your reply here reads as furious to me ,so I'd like to apologize for offending you, I tried to provide a balanced analysis here- and I think you'd agree it's a tough topic to cover - especially in a brief manner. I will say, I'm a big fan of your work at Authzed and SpiceDB, and while I think we probably don't see eye to eye on some topics like latency (e.g. I don't think same data-center is comparable to same node; or enough for realtime applications) ; I often recommend people to review and even use SpiceDB, it's my favorite open implementation of Google Zanzibar. I wouldn't call it a strawman at all in the context here - but rather a champion leading the charge. I do think in the end of the day, there's much to be said about combining policy-as-code at the edge with graph in the cloud - my intention is to bridge the two (with an event-driven channel like https://github.com/permitio/opal https://github.com/permitio/opal) Again, sorry if I didn't do a good enough job in portraying SpiceDB in the article, and I'd be happy to talk more about the subject.