3 ms·
Glyn: Type-safe PubSub and Registry for Gleam actors with distributed clustering
- deleted 1y ago[deleted]
- roxolotl 1y agoSo excited to see this! I hand built a shitty version of this for a small project. Need to switch when I get a chance. Tiny bit of self promotion since it’s easier to link out to my own words than type them again. Typed actors in Gleam are so damn powerful. https://www.tcrez.dev/2025-07-13-gleam-otp-101.html https://www.tcrez.dev/2025-07-13-gleam-otp-101.html
- mbuhot 1y agoIndeed Gleam’s typed actors are very powerful! I had to read through the erlang implementation code to fully internalise Subjects and Selectors. Thankfully Gleam makes it pretty easy since the std library package sources are just a go-to-definition away.
- okkdev 1y agoWow you should share this post on the gleam discord and weekly newsletter!
- photon_garden 1y agoReally enjoyed my experiments with Gleam! Such a lovely, simple language, and it’s clearly been made with great care and attention to detail. My language of choice is Rust, but I’d go with Gleam in a heartbeat if I: - Were working on a team with junior engineers - Building a web app - On a passion project, or in a business context where the lack of ecosystem etc. wasn’t a concern For my own projects or with other senior folks, Rust’s complexity is a price you pay once and you reap the rewards forever afterwards. But Gleam’s simplicity would really shine in an organization with a wider range of experience levels. My biggest complaint besides the obvious ecosystem stuff is that the most popular frontend library leaves something to be desired. It’s SPA-first, which seems like a very strange decision to make in 2025.
- loxs 1y ago> Rust’s complexity is a price you pay once and you reap the rewards forever afterwards This resonated with me. Will use it in the future when I explain why I use Rust for almost everything.
- mbuhot 1y agoRe front end libraries, the other project I’m working on is an adapter for using InertiaJS from the Gleam Wisp web framework. It won’t be as elegant as Lustre, but I figure it may be helpful for adoption if React/Vue/Svelte can be used on the front end. With the server-side routing, Inertia doesn’t feel quite so SPA-first.
- sureglymop 1y agoGleam seems like a perfect language to use in a scripting context. Would update a lot of my software if it gained Lua as a transpilation target. Then one could write performance critical sections in rust and interface with it more easily.
- lpil 1y ago> It’s SPA-first, which seems like a very strange decision to make in 2025. It’s not! Lustre is very flexible and can be used in many different ways, including LiveView style server components. It’s not limited to SPA.
- Eric_WVGG 1y agoI had no idea Pubsub was still a thing. Seems like it hit the scene right around when Google kneecapped the whole RSS platform.
- mbuhot 1y agoWow I never expected to stumble across a library I created while scrolling hacker news! :) One interesting aspect of this approach is that if you want Gleam’s type safety guarantees, it requires explicitly decoding dynamic terms into Gleam data structures. The latest version of Glyn amortises the cost of the decoding by performing it once per cluster node, then using the local typed messaging system to deliver the message to local subscribers.
- lpil 1y agoLooks like it silently discards the message on failure, your users would likely be thankful for error logging otherwise debugging that defect in production will be very challenging.