Two limits stop every write without warning: an integer ID running out, and transaction ID wraparound. Writestop projects the days left for both at your current rate, and you'll get a Slack message weeks ahead.
For backend engineers who are also the DBA: small teams on RDS, Cloud SQL, Supabase, Neon or their own Postgres, with older tables on integer keys.
Early access opens to the waitlist in signup order.
Shows today's number, not the day you run out, and someone has to keep running it.
Prometheus and postgres_exporter
Free, if you run Prometheus and write and maintain the alert rules yourself.
A full Postgres monitoring platform
Covers this and much more, priced for teams that want all of it.
Writestop
Just these limits, days left at your real rate, in Slack, with nothing to run.
How it works
Create a role that reads the Postgres catalog and your sequences, never table rows:
SQL
CREATE ROLE writestop LOGIN;
GRANTSELECTONALL SEQUENCES INSCHEMA public
TO writestop;
-- As your tables' owner, to cover new sequences:ALTERDEFAULT PRIVILEGES INSCHEMA public
GRANTSELECTON SEQUENCES TO writestop;
Repeat the GRANT and ALTER DEFAULT PRIVILEGES lines for each schema. Checked on PostgreSQL 16.2: with only these grants the role runs the demo query, and it cannot read table rows or advance a sequence.
Writestop will check every hour and project the days left for each integer sequence and ID column, and for each database's transaction ID age.
Weeks before a limit, you'll get a Slack message with the fix: for an ID, the bigint migration (Migration Guard shows its lock risk); for wraparound, what is holding vacuum back.
Price
$9/database/mo for the first 100 on the waitlist, then $19. Nothing is charged when you join.