Last but not least, you find official WASM run times that let you run this WebAssembly with a focus on speed and security and configuration and WASI support without having to re-implement the whole thing manually into your Node.js environment. For example, at Edgy, we use a WASM time, which is designed and developed by the Bytecode alliance. So there are no profit organizations. They're working on everything, compilers, run times, tooling, and libraries for WebAssembly. They're supported by a lot of large and famous and popular organizations, from the cloud providers to the edge providers.
A lot of different organizations and products have interest into developing and improving the landscape of WebAssembly. So you find a lot of familiar faces here. Check out the website. I'm trying to share a lot of useful links for you to dive a bit deeper by yourself. And then the WASM plus Edge, I think one of the biggest advantages of the Edge compared to a typical cloud design is that your code natively runs on hundreds and hundreds of Edge locations. And that's a big difference compared to cloud.
Usually, a cloud architecture starts as a centralized, even monolithic application that runs in a single data center, if you're lucky, in two or three availability zones within a region. Even if you're running on AWS Lambda, it's a regional service. It runs in a bunch of availability zones within an AWS region. And that's quite convenient. In most cases, you don't need more than that. But especially if you're building a website or a product with a global audience, you quickly end up involving some kind of CDN, whether it's for caching, for distributing content, for adding custom logic, and for doing all of these things as close as possible to your final users, because you have a global audience.
Well, with Edge computing, all of this stuff happens automatically, and your Edge application is globally distributed within a few clicks. So another thing to keep in mind is there is a fair tradeoff when it comes to resources. Typically, at the Edge, you have less compute power, you have less resources, compared to a virtual machine, a container, or a serverless function. But also, things need to happen really, really quickly, because often your Edge application runs just before or after every single HTTP request, so you're adding latency to every HTML or every page or every API request. So normally, you want to run your Edge logic in less than 5 or 10 milliseconds, and that's really fast.
So while it's true that some Edge or CDN vendors are trying to make this less of a problem, you know, most Edge deployments kind of need to be aware of these limitations, because you're literally adding latency to every request if you're not careful. So, for example, Bunny.net recently announced their Magic Containers just a few weeks ago, and Akamai also seems to be pushing their Managed Container Service, so there are ways to run containers at the Edge coming up, so check those out, too. But in general, if you go the traditional Edge way, you run your applications as a simple Edge app.
So if you remember the key benefits of WASM that we looked into, native performance, lightweight initialization, secure sandboxing, these are great for running WASM at the Edge, because we want to run as quickly as possible within a few milliseconds. We cannot afford seconds of startup time for our WASM modules, and that's great, because we don't need to, and we also want to eventually be able to run untrusted code at the Edge, you know, limiting network file system access and so on. So WASM is pretty interesting if what you're trying to do is similar to what we're trying to do at Edge, and that's why we chose these technologies, you know, it's an interesting match.
So in a nutshell, we're trying to build a platform for application level services powered by WebAssembly and Edge computing. So the core service we've been working on is focused on web analytics and data collection, and the final goal is to allow our customers to transform the typical heavy client-side SDKs like the Google Analytics, the segment, the amplitude SDKs into WASM components that run even before the page is loaded into the browser.
Comments