View on GitHub

adr

Journal of Architectural Decision Records made for the project

wasmCloud Will Not Run on Embedded Devices w/out Linux

This decision record covers our decision to not create our own fully supported wasmCloud host runtime for embedded devices that do not run on one of our already support targets (e.g. arm or aarch64 etc).

Context and Problem Statement

One of the main value propositions of the wasmCloud lattice is that it can connect actors and capability providers running anywhere. If that’s true, then we must consider what it would take to run providers and actors on tiny embedded devices like asset trackers, sensor equipment, telemetry gathering devices, weather stations, maker boards, and the like.

Considered Options

There are a few options that we considered:

Decision Outcome

We chose the last option, provide guidance to capability provider developers on how to act as an “MQTT bridge” to remote embedded devices. This will be resolved through a separate PR to our documentation site.

Pros and Cons of the Options

In the related RFC issue, we discuss all of the pros and cons of the various options. In short, it would be impractical and far too time and resource consuming for us to create releases and custom libraries for each combination of hardware and chipsets. Instead, offering the option of the “IoT proxy provider” seems like the best approach that keeps us focused on the cloud native runtime that allows actors to “run anywhere.”