Original Summary

EACL is a situated ReBAC authorization library inspired by SpiceDB &amp; Google Zanzibar, built in Clojure and backed by Datomic Pro, Datahike, Datalevin or DataScript. EACL is suitable for multi-Peer deployments. I have been working on EACL for ~2 years now in my personal capacity and I use it in all my Clojure projects now.<p>- You can try the EACL performance demo: <a href="https:&#x2F;&#x2F;demo.eacl.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;demo.eacl.dev&#x2F;</a><p>- And play with EACL Drive, a toy clone of Google Drive: <a href="https:&#x2F;&#x2F;drive.eacl.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;drive.eacl.dev&#x2F;</a> (runs in-browser on DataScript)<p>SpiceDB is the most faithful open-source implementation of Google Zanzibar, and is used OpenAI, Reddit and Netflix. Zanzibar powers Google Drive, YouTube, Gmail and Google Calendar, serving billions of authorization requests per day over billions of Relationships.<p>&quot;Situated&quot; here means that permission data co-exist with your application data. This has several advantages over external AuthZ:<p>- Reduced network latency (no network hop to external system),<p>- Strong local consistency,<p>- Scale reads by scaling Peers horizontally, and<p>- Real-time UI view maintenance – tail the tx-log and run eacl&#x2F;lookup-subjects for changed permissioned entities and notify online users of novelty, instead of polling or re-querying for all online users.<p>Rationale:<p>I spent the better half of 2024 integrating with SpiceDB at a former employer. SpiceDB is great, but it becomes non-trivial to keep an external authorization system in-sync, especially when there is an impedance mismatch between your data and SpiceDB’s 3-tuple Relationship schema. Plus, you also have to deal with eventual consistency.<p>So, you change your data model to match the Spice schema to make syncing easier. Now you can tail the transactor log via d&#x2F;listener and write Relationship changes 1-for-1.<p>But once you do that, you might as well run your permission queries in your application and then you have one less system to deal with...and this is exactly what EACL does. You still retain the option to migrate to SpiceDB later.<p>EACL is aimed at a different scale from SpiceDB: Spice is benchmarked against 100B Relationships. EACL aims for ~1-100M Relationships in a situated environment, but there is no reason it won&#x27;t scale further if you scale out Peers.<p>EACL is open-source under EPL 2.0.


  • 情报分类:技术学习与提效
  • 分类依据:内容涉及技术、AI、软件工具或工程实践
  • 信息来源:Hacker News 新项目
  • 发布时间:2026/9/15 22:09:39