Open source libraries from Convoy

These are the Go libraries we built while running webhooks at scale. Try them in your own projects, and let us know what you think.

requestmigrations

Rolling versions for REST APIs. Date and semantic versions, type-based migrations, and Prometheus timing. We use it in production at Convoy.

Date and semantic versions:Version APIs with date or semantic version headers so clients stay on the contract they were built against.

View on GitHub

Type-based migrations:Define migrations per Go type instead of per handler, then transform requests and responses as they move between versions.

View on GitHub

Prometheus instrumentation:Track transformation latency so slow migrations are visible in production.

View on GitHub

GoMITUsed at Convoy

View on GitHub

gopartman

Range partitions for PostgreSQL, managed from Go. Creates upcoming partitions, drops expired ones, and drains the default partition.

Time and tenant partitions:Partition by date, or by tenant and date, so each tenant's rows live in their own child tables.

View on GitHub

Premake and retention:Keep upcoming partitions ready and drop or detach ones that fall outside the retention window.

View on GitHub

Pre-drop hooks:Decide whether a candidate partition is dropped, detached, archived, or skipped before it is removed.

View on GitHub

GoMITPostgreSQL

View on GitHub

Built in the open

These libraries come out of the Convoy webhook gateway. The gateway itself is open source, and we would like you to use it, fork it, and talk to us.

Convoy gateway:The high-performance webhook gateway these libraries were extracted from. Star it, fork it, or run it yourself.

View on GitHub

Contribute:Issues and pull requests are welcome. Both libraries are MIT licensed and used in production at Convoy.

View on GitHub

Talk to us:Ask questions, share what you are building, and talk to the team in the Convoy Slack community.

Join Slack

Getting started with Convoy?

Add webhooks to your API in minutes. Start a 14-day free trial, no credit card required.