jzelinskie
Joined 14 years ago
Joined 14 years ago
Here's a video demonstration: https://www.youtube.com/watch?v=Y0tR-1WUxCo
I'm definitely going to read more about this work to learn more!
I can't help but see the similarities in their design to concepts from Zanzibar/SpiceDB, and that's great! It also means if they ever do encounter a situation where the existing system is no longer viable (engineers leave or a new design constraint requires rethinking), they _can_ migrate to a dedicated solution easily.
One trade-off I didn't see acknowledged in this post is the sacrifice in terms of tooling. Dedicated solutions have toolchains for debugging and proving correctness that you can integrate into CI/CD and homegrown solutions can't typically spare the time to also build themselves a nice toolchain.
This seems more beneficial to the founders because the the enterprises could instead just choose to do some research on the start-ups. It's not like the start-ups are keeping their knowledge quiet because for them to survive they need to convince everybody what their doing is meaningful.
[0]: https://github.com/authzed/spicedb/tree/main/tools/analyzers
I feel like discussions like these usually will surface PASETO/Macaroons/Thin Mints as the fix without acknowledging that the complexity of distributed token passing with arbitrary attenuation isn't a fit for most use cases.
That all being said, sometimes JWT is the right solution for the job! It's the core skill of software engineering to be able to take in all the arguments and tradeoffs and make the right choice for your scenario.
Full disclaimer: Take what I say with a grain of salt because I build a project (SpiceDB) that advocates for a more centralized approach for one of the backend JWT use cases: fine-grained authorization.
Have you tried Apple's container CLI[0]? I'm still mostly using OrbStack, but container gives me some hope for the future that Apple cares about this experience.
That being said, singleflight is a fantastic library and pattern that helps so much with p95 latency. It's a little noisy code-wise, but if you use it in the right places the gains are huge.
Also, totally agree with the below comment that recommends janos/singleflight -- start there, but most of the critical projects at my company, AuthZed, have reimplementations with tailored semantics.
jimmy (at) authzed (dot) com
https://authzed.com
https://jzelinskie.com
https://github.com/jzelinskie
https://twitter.com/jimmyzelinskie
https://floss.social/@jzelinskie
[ my public key: https://keybase.io/jzelinskie; my proof: https://keybase.io/jzelinskie/sigs/_ySiaPAv00XDZy5HEpw6-P5WIpbEo893EPAvl5ukT7s ]