- Published on
Svix Changelog April 2025
- Authors
- Name
- Tom Hacohen
- @TomHacohen
Svix is the enterprise ready webhooks sending service. With Svix, you can build a secure, reliable, and scalable webhook platform in minutes. Looking to send webhooks? Give it a try!
It's spring in the northern hemisphere, the bees are buzzing, and the flowers are blooming. Which means it's time for the Svix April changelog!
New Terraform provider
We are pleased to announce the new Svix terraform provider, which means you can now manage your Svix account using infrastructure-as-code!
We currently support creating environments, API keys, and event types (including OpenAPI import), updating environment settings, and managing operational webhooks; in addition to managing Svix Ingest sources and endpoints.
Here is an example:
resource "svix_environment" "staging_environment" {
name = "Staging env"
type = "development"
}
resource "svix_api_token" "staging_token" {
environment_id = svix_environment.staging_environment.id
name = "Environment token"
scopes = ["application:Read", "application:Create"]
}
Environment management APIs
In order to create the aforementioned terraform provider we had to stabilize the Svix environment and authentication token APIs. As part of this effort we are now making them public so everyone can use them! They are not public just yet, but they will be public next week. If you can't wait, contact us, and we can give you early access!
Because these APIs are management APIs, they need to be accessed with the new management API tokens. Normal API tokens are restricted to specific environments, while these API tokens support general account management.
You can create them in the management API keys page on the dashboard.
Email connectors and connector UI improvements
We are adding more connectors every day, and this time we added support for a few email providers: Resend, Loops, and Sendgrid! This means that you can now write connectors that enable your customers to turn a webhook into an email directly from Svix.
We also improved the connector UI to better accommodate all the new connector types we have been adding, and the ones we will be adding soon.
// Example email sending connector
function handler(webhook) {
webhook.payload = {
from: 'Your App <notifications@yourdomain.com>',
to: [webhook.payload.user.email],
subject: 'Welcome to Your App!',
html: `<h1>Welcome ${webhook.payload.user.name}!</h1>
<p>Thank you for signing up to our service.</p>`,
}
return webhook
}
FIFO endpoint improvements: better retry management
FIFO endpoints follow the same retry schedule as the rest of Svix. However, because of the FIFO semantics a failure in delivery means that delivery to the endpoint is completely paused.
This behavior is different to how webhooks normally behave and required some additional functionality that we didn't have when this was first launched, namely:
- Making it easy to know when the FIFO endpoint will retry next.
- Making it possible to get the FIFO endpoint to retry immediately.
We have now added both to the UI.
Svix CLI login workflow
We added a new login flow to the Svix CLI that lets you approve the CLI session directly from the browser.
The way it works: you run svix login
in your terminal which opens the Svix dashboard in the browser. You can then authorize the session in the browser and start using the CLI. This is in addition to the previously supported method of setting the token in the config or an environment variable.
$ svix login
Welcome to the Svix CLI!
How would you like to authenticate?: Login in dashboard.svix.com
Please approve the login in your browser, then return here.
Verification code: 22FM
Better handling of UID locking and client disconnects
Svix employs multiple integrity mechanisms to ensure that messages are sent exactly once including idempotency and eventId
de-duplication.
The way the eventId
de-duplication works is that if it detects that a message with the same eventId
already exists it returns a 409 (Conflict)
HTTP error. Though what happens when there are two requests with the same eventId
in-flight at the exact same time? In that case the first one will be processed by Svix and the second will get a 423 (Locked)
HTTP error.
There were some scenarios, however, such as client timeouts, where the locking mechanism could take a long time to clear, which means that additional retries would return 423
for longer than needed.
We have now reduced the locking period, and implemented smarter lock clearing functionality in order to further reduce the time it takes to have a successful retry.
In practice a tiny fraction of customers and miniscule number of the total requests ever got a 423 returned to them; and an even smaller number of requests hit the conditions required to cause the situation we improved. Though we spent time investigating and solving this, so we wanted to share!
A variety of quality of life improvements
We changed the default region selected in the "create environment" dialog to be based on where you're based. So for example, Europeans will get the European region selected by default, and Americans the US one.
We made multiple improvements to how we handle SSO and SCIM, leading to a much better experience when it comes to provisioning access to your team, and managing your account.
We now support sending test events to disabled endpoints. Before this change, you had to have the endpoint enabled in order for the test event to be delivered which was confusing.
Closing words
As I mentioned in the previous update, we have been working on a few large projects that are not ready to be shared just yet. One of them is the terraform provider mentioned above, but there's a much bigger project that we are working on that I can't wait to talk about!
As always, please let us know if you have any feedback on the product, or anything else we can add or build to make your lives easier. A lot of the Svix product came from customer feedback, and we are sure ${next_big_thing}
will come from feedback as well. No feedback is too small!
For more content like this, make sure to follow us on Twitter, Github, RSS, or our newsletter for the latest updates for the Svix webhook service, or join the discussion on our community Slack.