3 ms·
Show HN: Swig – A PostgreSQL-powered job queue system for Go
I built Swig, a job queue system for Go that leverages PostgreSQL's advanced features for distributed processing. It's currently in alpha, and I'd love feedback from the community.
What is Swig?
Swig is a robust job queue system for Go applications that uses PostgreSQL as its backend. Unlike many job queues that require separate infrastructure, Swig leverages your existing PostgreSQL database, making it simpler to deploy and maintain.
Key Features:
- Race-free job distribution using SELECT FOR UPDATE SKIP LOCKED
- Real-time job processing with LISTEN/NOTIFY
- Leader election via advisory locks
- Priority queues and scheduled jobs
- Transactional job enqueueing (jobs can be part of your application transactions)
- Multiple database driver support (pgx and database/sql)
Why I Built It:
I wanted to deepen my understanding of PostgreSQL's concurrency features and distributed systems patterns. While there are other PostgreSQL-backed queues, I wanted to build something specifically for Go that embraces idiomatic patterns and provides a clean, type-safe API while fully leveraging PostgreSQL's powerful features for distributed coordination.
Current Status:
This is an alpha release and a passion project. The core functionality works, but there are still rough edges and missing features. I'm actively working on improvements and would appreciate feedback, issues, and contributions or shoot me an email ogbemudiatimothy@gmail.com
- pvg 2y agoIf you haven't come across it - this thing is in pretty wide use https://www.swig.org/ https://www.swig.org/ so you'll probably get some confused people. Which is fine, since as the poet teaches us, sometimes words have two meanings but just a heads up.
- deleted 2y ago[deleted]
- glamboyosa 2y agoHeh never have, I was going Swig like some delicious beer