Releases: suborbital/e2core
v0.4.5
Beta-4.4
Beta-4.3
Beta-4.2
Beta-4.1
Beta-4
Welcome to Atmo Beta-4!
This is a packed release, so let's get right to it:
Go and Grain language support
Along with the newly released Reactr Beta-13, Atmo now has built-in support for Go (via the TinyGo toolchain) and Grain, which is an incredible WebAssembly-native language. These two languages enter preview in Beta-4 and join Atmo's existing support for Rust, AssemblyScript, and Swift. We're really excited to expand the types of languages you can use to build Atmo applications, and we're looking forward to bringing even more to you over the coming months such as JavaScript, Python, C/C++ and more.
SQL Database capability
This is a big one! Atmo Beta-4 brings our first preview of SQL database support. This release supports MySQL and PostgreSQL databases, and is currently supported in the Rust API. We plan to support all languages in upcoming releases, but want to use this opportunity to test out Atmo's novel approach to connecting with databases and get your feedback. Database support means that we as a community can start building truly end-to-end systems with Atmo, because it can finally work with your data! While caches and static files are great, the good ol' SQL database is still one of the main ways that scalable systems are built. Check out the docs for full details and to try it out!
Kafka / Redpanda stream support
Atmo Beta-3 brought us the new concept of streams
, allowing Atmo to become a stream processor and connect with your existing messaging-based infrastructure using NATS. This release brings all of the same capabilities to those of us who power their apps with Kafka! You can handle Kafka streams using Atmo handlers, and pipe responses back out over Kafka as well, making Atmo a really great choice for asynchronous application design with a really powerful and flexible WebAssembly runtime. We have also fully tested this release with the popular Redpanda Kafka replacement, and are happy to report it works wonderfully.
Hugely improved performance
We have two compounding performance improvements in Atmo Beta-4, the first comes from the internal Reactr scheduler which saw its own round of performance improvements in Beta-13, but Atmo itself has also improved how it handles requests internally, including much fewer JSON encode/decode events, which means your requests are handled with an order of magnitude less overhead than in previous releases. We have been performing systematic benchmark tests for the past few months, and we've seen Atmo handle some massive network load in production environments. This is something we're constantly improving upon, and this release especially has seen some great gains.
And much more
Atmo Beta-4 also includes some small improvements such as a built-in health endpoint, and a new experimental 'proxy' mode that allows Atmo to act as a super-intelligent load balancer for constellations of Sat instances. One important thing to note is that Atmo Beta-4 no longer includes the ForEach
handler step type. After speaking with users and looking at the complexity that feature brought to the platform, we decided that it made the most sense to focus on simplicty and remove it. Subo will give an error in projects that use forEach
starting with its Beta-2 release.
Atmo Beta-4 is based on Reactr Beta-13, which introduces internal breaking changes to the WebAssembly APIs. Please update all of your Runnables to use v0.13.0 of their respective APIs.
That's all for now! Please visit the docs and give Atmo a try, we're really excited about this one.
Beta-3.2
Beta-3.1
Beta-3
Welcome to Atmo Beta-3!
There are some great new additions in this release, let's get an overview:
NOTE: Beta-3 requires subo Alpha-19 and Runnable API v0.11.0
Streams
Streams are a new handler type in Atmo. You can define a stream
handler that reads messages from a streaming connection such as a websocket or NATS topic, and execute your Runnables to handle each one. This opens up tons of new use-cases and application architecture patterns that Atmo can now be a part of!
Authentication
Your Directive can now configure authentication secrets for your Runnables' HTTP and GraphQL requests. Atmo will automatically inject Authorization
headers into requests made by your code so that secrets are handled securely by the runtime instead of being passed into the WebAssembly sandbox.
Connections
External connections can now be defined declaratively in the Directive to automatically set up resources that your application needs to operate. Configuring NATS for stream processing, and in the future, connections like caches and databases can now be defined declaratively instead of needing to set them up in code.
GraphQL capability
As alluded to above, your Runnables can now make GraphQL requests! Popoular third-party APIs rely on GraphQL, and your Atmo applications can now work seamlessly with them.
There's a ton more under the hood, but that covers the highlights! As always, visit the documentation for the most up-to-date information and getting started guide.
Beta-2.3
Atmo Beta-2.3 brings a few great improvements:
- AssemblyScript support! You can now build Runnables with TypeScript syntax. Use Subo v0.0.16 or later with the
subo create runnable awesomefn --lang typescript
command. - 'Headless mode': Running Atmo with the
ATMO_HEADLESS=true
env var puts Atmo in headless mode, which causes it to ignore your directive and make each individual Runnable available at its own unique URL. This is extremely useful for testing, since you have full control over the inputs to the Runnable.
As always, there are large under-the-hood changes in this release that will allow Atmo to evolve faster and support future features! Beta-3 is still in progress, with the headline feature still set to be GraphQL client support for accessing your databases!