May 09, 2024

Announcing Spin 2.5

Melissa Klein Melissa Klein

spin webassembly wasi component model release wasmtime

Announcing Spin 2.5

Today we’re happy to announce the release of Spin 2.5, which includes several enhancements to Spin:

  • Spin supports application-internal private endpoints, which allows you to avoid exposing internal components on public routes while still splitting them out to their own microservices.
  • Spin now allows you to specify routes with more granularity.
  • Spin now provides improved support for OpenTelemetry.
  • Azure Key Vault Application Variable Provider is now implemented and documented here.

Let’s dive into a couple of these new features.

Private Endpoints

Spin 2.4 added the ability to ensure that the runtime environment will handle requests to other components in the same application without leaving the host. To use this feature, you reference the special <component-id>.spin.internal host name in your application. But in Spin 2.4, those endpoints were still accessible from an external route. In Spin 2.5, you can have HTTP components, which can only be reached via service chaining. Your application manifest for private endpoints will set private="true" on the route.

Improved Route Matching

Defining more granular routes for applications has been a much-requested feature for Spin. In Spin 2.5, you can now specify routes with more granularity. You can also use single-segment wildcards in the middle of routes, giving you more flexibility in mapping HTTP paths to components. In addition to any headers passed by the client, Spin sets several headers on the request passed to other components, which you can use to access additional request information about the HTTP request.

Improved Support for OpenTelemetry

Spin 2.4 added experimental support for OpenTelemetry, and in Spin 2.5, that support has expanded! A lot of work has been done to improve the coverage, and now OpenTelemetry support includes:

  • Tracing of all major triggers and host components.
  • Correct tracing of outbound HTTP requests.
  • Support for sending telemetry to the collector via gRPC.
  • Initial support for metrics.

Azure Key Vault Application Variable Provider

Spin has supported loading application variables using either the environment variable or the Vault Provider for quite some time now. With Spin 2.5, the Azure Key Vault Provider is added, allowing you to load application variables from your Azure Key Vault instances.

Thank You!

We would like to thank the over 75 contributors to the Spin project and especially our new contributors rgl and garikAsplund. We hope to see you again soon in the commit history! Thank you to everyone in our growing community. Every comment, issue, and pull request helps us improve Spin!

A special mention goes out to the maintainers of the Bytecode Alliance projects, particularly the Wasmtime project and the developers working on WASI and the WebAssembly component model. Their work is instrumental in supporting Spin.

Stay In Touch

If you are interested in Spin, Fermyon Cloud, or other Fermyon projects, join the chat in the Fermyon Discord server and follow us on X (formerly Twitter) @fermyontech and @spinframework!

If you want to get involved in the Spin project, join us at our Spin Community Developers Meeting which is usually on the fourth Monday of every month at 11 a.m. Eastern US Time (5 p.m. CET). However, our next meeting is on May 20 since May 27 is a holiday in the US. You can watch recordings of the previous meetings on our YouTube Channel.

🔥 Recommended Posts

Quickstart Your Serveless Apps with Spin

Get Started