https://authzed.com logo
Join Discord
Powered by
# zanzibar
  • t

    thedecrypter.

    03/09/2024, 7:16 PM
    That means it will have to scan all docs and perform check requests on all of them. So in this weird case, wouldn’t it be pretty bad?
  • t

    thedecrypter.

    03/09/2024, 7:17 PM
    From what I’ve seen if this works as expected it’s a killer feature in my opinion.
  • j

    Joey

    03/09/2024, 7:18 PM
    yes, that's why we built Materialize; for the worst case
  • j

    Joey

    03/09/2024, 7:18 PM
    definitely does. if you're interested, please sign up on the early access waitlist. we're working with a select set of customers with it now
  • t

    thedecrypter.

    03/09/2024, 7:29 PM
    Thanks for all the information. Well currently I am at an Investment firm, and we have scaling issues because we do auth at the DB and the logic is quite complex. So I’ve looked into Zanzibar and from all the products that are out there you are the only ones that might solve our issue. We are not yet using your platform, but If I manage to convince the leadership, we will need to try this out first.
  • y

    yetitwo

    03/09/2024, 8:22 PM
    BulkCheckPermission is squarely in the center of use cases that SpiceDB is optimized for
  • The Google Zanzibar Paper, annotated by ...
    a

    adriangalilea

    03/14/2024, 8:52 AM
    Out of curiosity, what are you using for this site? https://zanzibar.tech/
    v
    • 2
    • 5
  • c

    costap.

    05/16/2024, 3:32 PM
    intersting, will this available in the self-hosted option as spicedb or only in your cloud based offer?
  • j

    Joey

    05/16/2024, 3:32 PM
    it will eventually be available on prem, but still paid
  • c

    costap.

    05/16/2024, 3:54 PM
    do you guys have white paper or plan to, describing a bit more the solution?
  • j

    Joey

    05/16/2024, 4:05 PM
    right now we're working with early access customers on it so no public docs yet, but we can discuss details if you're interested
  • c

    costap.

    05/16/2024, 4:12 PM
    yes interested. we have a search use case that can return quite a few results for which we use ElasticSearch and planning on using SpiceDB self hosted for pemissions. We have come up with a solution that returns fewer results from SpiceDB, because we can make some assunptions around our model and I think we will go with that for now but would be interested in exploring other options.
  • j

    Joey

    05/16/2024, 4:14 PM
    feel free to schedule a call with us and we can discuss: https://authzed.com/contact
  • t

    theconductor9912

    06/06/2024, 1:21 AM
    It's mentioned in the annotated Zanzibar paper that the existing capabilites of Spanner likely influenced the design of Zanzibar. Since SpiceDB is based on Zanzibar, does that mean SpiceDB would run most efficiently on Spanner? Is there more latency on CockroachDB or Postgres since they have to approximate the abilities of Spanner?
  • y

    yetitwo

    06/06/2024, 1:55 AM
    not that i'm aware of. the big thing that spanner gives you that zanzibar uses is the ability to kind-of-linearize transactions in a distributed system using its TrueTime API. you only have that problem in a distributed system, so you don't see it in postgres or mysql at all. cockroach solves it a different way - they've got a pretty good writeup of it here: https://www.cockroachlabs.com/blog/living-without-atomic-clocks/, and to my knowledge there isn't a meaningful performance difference between spanner and cockroach. i'd let the devs weigh in there though.
  • j

    Joey

    06/06/2024, 2:22 AM
    If you care about the new enemy problem, CRDB requires us to do some extra work when writing that impacts the write performance throughput vs Spanner. If you don't, then the differences should be fairly minimal
  • t

    theconductor9912

    06/06/2024, 2:28 PM
    "care about the new enemy problem" == using
    at_least_as_fresh
    consistency instead of
    minimize_latency
    ?
  • t

    theconductor9912

    06/06/2024, 2:29 PM
    thanks for linking that, that was a cool read
  • j

    Joey

    06/06/2024, 2:40 PM
    and requiring that a user's access cannot change at a point-in-time, no matter what
  • The zanzibar literature makes a big
    a

    alechenninger

    06/11/2024, 6:27 PM
    The zanzibar literature makes a big point about reverse indexing, but as far as I can tell the paper doesn't actually describe an API that leverages that. Expand is the same direction as "check" (object to user). What was Zanzibar's "reverse" API? Did they have a "reverse expand"?
    e
    j
    l
    • 4
    • 6
  • Hi y'all, is there any good resources
    b

    blackr4t

    07/31/2024, 10:53 AM
    Hi y'all, is there any good resources for a CTO kind of role ?
    v
    s
    • 3
    • 6
  • t

    theconductor9912

    08/05/2024, 6:50 PM
    TIL Zanzibar was named so because it's "one of the spice islands": https://www.osohq.com/post/developer-den-with-lea-kissner Here I was thinking they let go of an awesome name, but it's been right there the whole time!
  • j

    Joey

    08/05/2024, 6:57 PM
    it was known as "Spice" internally
  • j

    Joey

    08/05/2024, 6:59 PM
    ah, the article says that 🙂
  • t

    theconductor9912

    08/12/2024, 5:07 PM
    Something I'm struggling to understand is this quote from the Zanzibar paper (https://zanzibar.tech/2L8muxKlMv:u:1_), which an Authzed annotation pointed out (https://zanzibar.tech/#annotations/intro/surprising-reads-qps): > Several Zanzibar clients also use Zanzibar to store their social graphs. As in, certain Google services are using Zanzibar as their actual data store for their entire social networks, which is backed by the fact that there are twice as many Read requests to Zanzibar as there are Check requests. So those relationships aren't actually stored in the app, or metadata, store. So how might these services do something like paging, where pages are often sorted by most recently created/edited? For example, if you wanted the first page of the 25 most recently created resources, you would have to request every possible resource ID from Zanzibar, just so you could take it back to the metadata store and figure out which of those are the 25 most recent. If you ask for any less than everything from Zanzibar, you risk missing the most recent resources
  • e

    ecordell

    08/12/2024, 5:53 PM
    We can only guess at things they didn't write about, but they talk about applications using the Watch api to maintain secondary indexes of data in Zanzibar. My guess is that the applications storing their social graph in Zanzibar either intentionally avoid sorting by the graph in the way you're asking about, or maintain their own secondary index even though the primary data is in Zanzibar alone.
  • t

    theconductor9912

    08/12/2024, 7:19 PM
    Ah okay that's a pretty good note – just because Zanzibar is their primary data store doesn't mean it's their only data store. Thanks!
  • t

    theconductor9912

    08/12/2024, 7:20 PM
    I'm trying to use SpiceDB in a similar way, and while I'm not at the scale where that question applies to me, it's important to me that the problem at least has some solution. Google of all places must have found one
  • hello everyone, I'm here from the
    b

    bnm

    09/18/2024, 9:53 AM
    hello everyone, I'm here from the annotated paper (zanzibar.tech). I'm trying to grok the Leopard Indexing System section. Here's my understanding, please correct me if I am wrong: -
    Member2Group(U)
    returns all the groups for which U is a direct member -
    Group2Group(G)
    returns all the descendants of group G - These groups are implemented using data structures optimized for set operations - If the intersection of the results from Member2Group and Group2Group is non-empty, then U is a member of G - Though not explicitly stated in the paper, a tree is used to map Parent groups to child groups (so as to enumerate all the descendants)
    v
    e
    • 3
    • 4
  • Also on a separate note, what does it
    b

    bnm

    09/18/2024, 10:02 AM
    Also on a separate note, what does it mean for
    #...
    to not affect the semantics of a tuple, e.g. given
    folder:A#...
    , is this like a wildcard?
    v
    • 2
    • 3