Chase Granberry

10.7K posts

Chase Granberry banner
Chase Granberry

Chase Granberry

@chasers

Logs, #o11y, @logflare_logs and Elixir at @supabase. Previously @authoritylabs.

UTC Katılım Haziran 2007
2.4K Takip Edilen3.1K Takipçiler
Chase Granberry
Chase Granberry@chasers·
@zeeg Have it hallucinate tools in the background maybe it’ll give you ideas for new ones!!
English
0
0
0
64
David Cramer
David Cramer@zeeg·
Pushed a change to the Sentry MCP that bridges the gap between embedded agents (~subagents) and composable tools. All `search_` tools now run an LLM across the query input, meaning they support structured params + natural language, and the LLM can pull in all the various tool calls to course correct it as needed. If you notice any wacky behaviors here let me know. This is all pretty greenfield!
English
4
0
13
2.4K
Chase Granberry retweetledi
Jakub Skałecki 🚀 #buildinpublic
Until now, LiveVue supported only two SSR modes: ➡️ Vitejs-based (for development) ➡️ Nodejs (for production) Now I'm introducting a third one: ✅ QuickBeam It's running QuickJS as NIF, which is more performant. Now a default mode! Thanks @dan_note for contribution!
Jakub Skałecki 🚀 #buildinpublic tweet media
English
1
1
18
473
Chase Granberry retweetledi
benoît chesneau
benoît chesneau@benoitc·
erlang_quic 1.3.0 is out. First production-ready release. Pure-Erlang QUIC + HTTP/3, zero C deps. - RFC 9000 / 9001 + 9114 / 9204 - Priorities, datagrams, CONNECT - -proto_dist quic for clusters - OTP 27+ github.com/benoitc/erlang…
English
2
16
112
4.5K
Chase Granberry retweetledi
tobi lutke
tobi lutke@tobi·
@badlogicgames PI is now over 50% of agent usage at Shopify internally.
English
30
49
1.2K
102.3K
Brad Gessler
Brad Gessler@bradgessler·
I have to figure out a way to spin up and manage 1,000-10,000 8GB servers in 2 weeks. Leaning towards an Elixir app that provisions them on various clouds & installs a go agent on them that connects up to said Elixir app. What should I look at? What am I going to regret?
English
11
1
22
4.3K
Chase Granberry retweetledi
Brad Gessler
Brad Gessler@bradgessler·
This is my first big Elixir project. I reached for it because I needed to manage the state of a lot of docker compose clusters to run the dev servers and docker containers to run agents. The supervisor tree was crucial to getting it working.
English
1
1
10
738
Chase Granberry retweetledi
Danila Poyarkov
Danila Poyarkov@dan_note·
Reach 1.5.0 — effect classification accuracy went from 11% to 89%. The analyzer couldn't tell 𝚁𝚎𝚙𝚘.𝚒𝚗𝚜𝚎𝚛𝚝!() from 𝙴𝚗𝚞𝚖.𝚖𝚊𝚙(). Now it can. What changed: — Alias/import resolution. 𝚊𝚕𝚒𝚊𝚜 𝙵𝚘𝚘.𝙱𝚊𝚛 then 𝙱𝚊𝚛.𝚌𝚊𝚕𝚕() was invisible to coupling analysis. Multi-alias 𝚊𝚕𝚒𝚊𝚜 𝙵𝚘𝚘.{𝙰, 𝙱} and 𝚒𝚖𝚙𝚘𝚛𝚝 too — Cross-module effect inference. Pure functions recognized transitively across modules — Plugin 𝚌𝚕𝚊𝚜𝚜𝚒𝚏𝚢_𝚎𝚏𝚏𝚎𝚌𝚝/𝟷 callback for all 8 built-in plugins. 𝚁𝚎𝚙𝚘.𝚊𝚕𝚕 → read, 𝚁𝚎𝚙𝚘.𝚒𝚗𝚜𝚎𝚛𝚝! → write, 𝚊𝚜𝚜𝚒𝚐𝚗 → pure — On Elixir 1.19+ reads compiler-inferred types from ExCk BEAM chunk 7 new commands: 𝚌𝚘𝚞𝚙𝚕𝚒𝚗𝚐, 𝚑𝚘𝚝𝚜𝚙𝚘𝚝𝚜, 𝚍𝚎𝚙𝚝𝚑, 𝚎𝚏𝚏𝚎𝚌𝚝𝚜, 𝚋𝚘𝚞𝚗𝚍𝚊𝚛𝚒𝚎𝚜, 𝚡𝚛𝚎𝚏, 𝚌𝚘𝚗𝚌𝚞𝚛𝚛𝚎𝚗𝚌𝚢. All take a path filter: 𝚖𝚒𝚡 𝚛𝚎𝚊𝚌𝚑.𝚑𝚘𝚝𝚜𝚙𝚘𝚝𝚜 𝚕𝚒𝚋/𝚖𝚢_𝚊𝚙𝚙/ Tested on 7 real codebases (up to 817 files). Zero crashes, 30% faster. github.com/dannote/reach/…
English
0
1
35
1.3K
Chase Granberry retweetledi
Nik Samokhvalov
Nik Samokhvalov@samokhvalov·
PgQue v0.1.0 is out. PgQ -- the Postgres queue system built at Skype 20 years ago for 1B-user-scale workloads -- repackaged for the managed-Postgres era. One SQL file. No C extension. No external daemon. pg_cron to tick. Why bother reviving a 2007 architecture? Every major Postgres queue in production today uses some flavor of SKIP LOCKED + UPDATE/DELETE. It works under light load. When you have more data and higher load, it degrades predictably. Then you get posts like these: - Brandur at Heroku, 2015: 60k job backlog in one hour from a single open transaction - PlanetScale, 2026: death spiral at 800 jobs/sec - River issue #59, awa issue #169 and so on, Oban's partitioning work, PGMQ's autovacuum tuning guide and duct-taping with pg_partman The core issue is how Postgres MVCC is implemented and how we deal with it. Dead tuples in the hot path, xmin horizon pinned, vacuum falling behind, query performance quickly degrades. This happens every time you run pg_dump, execute an analytical query, or have a lagging/unused logical replication slot. PgQ solved this in 2007 with snapshot-based batching and TRUNCATE rotation -- zero dead tuples in the event path, by design. But PgQ needed a C extension and an external daemon. Which means it doesn't run on RDS, Aurora, Cloud SQL, AlloyDB, Supabase, or Neon -- i.e., where most Postgres lives now. PgQue closes that gap. 💎 Pure SQL + PL/pgSQL (PgQ engine) 👩‍💻 \i sql/pgque.sql -- you're done 🕑 pg_cron replaces pgqd (optional, recommended) 💻 Python, Go, TypeScript client examples shipped 💙 Apache 2.0 Trade-off: end-to-end event delivery latency is up to a second, it depends on ticking frequency. If you need sub-3ms job dispatch, use River, Oban, or graphile-worker (and avoid anything that blocks xmin horizon). If you need high-throughput event streaming with fan-out inside Postgres -- Kafka-shaped, without Kafka and dealing with transactional outbox implementation -- this is the right shape of tool. Kudos to Marko Kreen and Skype engineers who implemented this decades ago, for the original PgQ, and to Alexander Kukushkin whose recent "Rediscovering PgQ" talk brought this quiet corner of the Postgres ecosystem back into view. Stars, issues, PRs, and honest criticism all welcome. Link 👇
GIF
English
7
51
351
34.3K
Chase Granberry retweetledi
Dillon Mulroy
Dillon Mulroy@dillon_mulroy·
for the erlang, elixir, and gleam fans - you can now use DOs to create and manage supervision hierarchies of child DOs 😎
Kenton Varda@KentonVarda

In case you missed it, Project Think -- that's @threepointone's Workers-native agent harness -- supports sub-agents using Durable Object Facets: #delegating-work-sub-agents-via-facets" target="_blank" rel="nofollow noopener">blog.cloudflare.com/project-think/… That's actually a different use case for facets than the one I presented Monday: blog.cloudflare.com/durable-object… In this case, the facet isn't running agent-generated code -- the facet is running a regular, static DurableObject class exported by the same Worker as the parent DO's class. This is not actually documented yet, but you can refer to your own Worker's exported Durable Object classes using `this.ctx.exports.ClassName`, and provide that when starting a facet. In other words, this allows you to essentially run instances of a Durable Object class that are owned by some other instance and stored together with it. The child gets its own private SQLite database, but has a zero-latency connection to the parent since they are always co-located. Useful for running a sub-agent. If this makes no sense... I'm sorry, it's my fault. I've really outdone myself on the "nobody understands this" scale with facets. Just... use Think and don't worry about it.

English
8
7
132
17.2K
Chase Granberry retweetledi
Chris Bell | knock.app
Chris Bell | knock.app@cjbell_·
The untold engineering story here is that this is powered by JS scripts that customers can author to validate and transform an event as it comes in. We built that by compiling JS to wasm via javy and executing wasm in elixir via wasmex (with some tight execution guarantees as it's on the critical path). I know sandboxes are all the rage right now, but elixir really is incredible for this sort of thing.
Chris Bell | knock.app@cjbell_

Trigger customer messaging directly from @stripe, @clerk, @WorkOS and @supabase. No webhook glue code or third party services needed.

English
3
9
57
9K