
The downloadable code is delivered through a fully automated continuous integration and delivery pipeline that can release updates as often as every few hours. This architecture split allows us to deliver new features and bug fixes without having to go through the very slow process of updating the C++ layer. Historically, these components all used JavaScript The stuff we download (at run time) includes the application code, along with low-level components that handle scene management, the animation system, graphics rendering, layout, and resource management, among other things.

In a pilot study, an automated code checker found about 100 possible errors, 80% of which turned out to require correction. To enable efficient updates on a wide variety of devices while still maintaining performance, the Prime Video app has two parts: a high-performance engine written in C++ that is stored on-device and an easy-to-update component that is downloaded every time the app launches. And in ongoing work we’re driving the frame time down still further. The worst-case frame times also decreased from 40 milliseconds to 25. Because we are excited to contribute to the Wasm ecosystem, Amazon has joined the Bytecode Alliance, a consortium dedicated to developing secure, efficient, modular, and portable runtime environments built atop standards such as Wasm.īy using Wasm instead of JavaScript for certain elements of the Prime Video app, we’ve reduced the average frame times on a mid-range TV from 28 milliseconds to 18. In the past year, we’ve been using WebAssembly (Wasm), a framework that allows code written in high-level languages to run efficiently on any device, to help resolve that trade-off. When we want to do an update, every one of those devices requires a separate native release, posing a difficult trade-off between updatability and performance. At Prime Video, we’re delivering content to millions of customers on more than 8,000 device types, such as gaming consoles, TVs, set-top boxes, and USB-powered streaming sticks.
