Company
Date Published
Author
Jimmy Zelinskie
Word count
753
Language
English
Hacker News points
None

Summary

At Authzed, we're building a platform to manage the permissions built into applications. While services like Okta and PingFederate tackle the question of who you are, Authzed tackles what you can do. The foundation of solving this problem is SpiceDB, our open source graph database that builds upon the design expertise used to solve this problem by companies like Google (via Zanzibar) and Facebook (via Social Graph). We built an initial prototype of SpiceDB in Python but eventually considered rebuilding with a different language due to architectural concerns. Despite concerns about performance, our prototype was surprisingly fast, thanks to heavy use of functional programming patterns. Our requirements for the new language were to maintain clarity of implementation while controlling concurrency, performance, and memory efficiency. We chose Go due to its familiarity among team members and third-party tools like linting tools and release management tools that greatly benefit contributor workflow. The Go ecosystem also offered access to pre-existing databases and libraries, making it easier to contribute back changes and adopt standard workflows throughout the community. Additionally, the Go community is known for being welcoming and caring, which aligns with Authzed's company culture.