left arrow Back to home
Sequin Blog

Most Recent

BY Carter Pedersen
8 min read
Benchmarking PG_NET: Part 1

I set out to benchmark pg_net to give the Supabase community the information needed to decide when pg_net will work for them and when they should evaluate other options....

Read more →
BY Anthony Accomazzo
7 min read
All the ways to react to changes in Supabase

Supabase makes it easy for your frontend to react to changes in your database via its Realtime feature. But outside the frontend, there's lots of reasons your application might want to react to changes in your database. You might need to trigger side effects, like sending users an...

Read more →
BY Anthony Accomazzo
10 min read
How we build forms in LiveView + LiveSvelte

We're Sequin, an open source message stream built on Postgres. We have a console for managing tables and streams, and that console is built with LiveView + LiveSvelte. We wrote previously about how much we enjoyed using LiveView with LiveSvelte. Since then, we've open sourced a lot...

Read more →
BY Anthony Accomazzo
13 min read
Postgres sequences can commit out-of-order

We're Sequin, an open source message stream like Kafka, but built on Postgres. Stable, sequential ordering is a very useful thing to have when building a streaming system. But Postgres' behavior here can be surprising! We go down the rabbit hole below. An under-appreciated fact is that...

Read more →
BY Anthony Accomazzo
12 min read
LiveView is best with Svelte

Phoenix's LiveView is powerful. But it felt like it was missing something. Adding Svelte not only filled a big gap – it introduced us to an entirely new way to develop web apps....

Read more →
BY Anthony Accomazzo
8 min read
All the ways to capture changes in Postgres

Working with data at rest is where Postgres shines. But what about when you need data in motion? What about when you need to trigger a workflow based on changes to a table? Fortunately, Postgres comes with a lot of options to make this happen....

Read more →
BY Randy Coulman
6 min read
GenServer.reply: Don't Call Us, We'll Call You

Let's look at how we can use `:noreply` and `GenServer.reply` to allow a GenServer to continue working even while its `call`ers wait for the result of long-running operations....

Read more →
BY Randy Coulman
9 min read
Between the Ctrl-C's

An outline of the options available in the Elixir BREAK menu....

Read more →
BY Anthony Accomazzo
10 min read
We used Elixir's Observer to hunt down bottlenecks

How we used Elixir's Observer to chase down and fix some puzzling runtime issues....

Read more →
BY Anthony Accomazzo
6 min read
Give me /events, not webhooks

Webhooks come with some challenges. We prefer polling an /events endpoint instead when possible....

Read more →