WebAssembly / wasi-messaging

messaging proposal for WASI
18 stars 9 forks source link
wasi wasm wit

wasi-messaging

A proposed WebAssembly System Interface API.

Current Phase

wasi-messaging is currently in Phase 1.

Champions

Phase 4 Advancement Criteria

wasi-messaging should have at least two implementations (i.e., from service providers, and or cloud providers), and, at the very minimum, pass the testsuite for Windows, Linux, and MacOS.

Table of Contents

Introduction

The messaging interfaces aim to provide a generic and flexible way for producers and consumers to communicate through message brokers. The producer interface allows producers to publish events to a specific channel in a broker, while the consumer interface allows consumers to subscribe to a channel and receive events through a push-based mechanism. The handler interface provides an on-receive function that can be used to process received events with full abstraction of the underlying broker implementation.

Goals

The messaging interfaces aim to address the need for a standard way to handle message-based communication in modern software systems. In complex software systems, different components or even different applications need to communicate with each other to exchange information and coordinate their actions.

However, implementing message-based communication can be challenging, as it requires dealing with the details of message brokers, such as connection management, channel setup, and message serialization. The messaging interfaces aim to simplify this process by providing a standard way to interact with message brokers, hiding the underlying complexity from the user.

This standardization can benefit various scenarios, such as

Overall, the messaging interfaces aim to make it easier to build complex and scalable software systems by providing a common foundation for message-based communication.

Non-goals

API walk-through

For a full API walk-through, see wasi-messaging-demo.

Note: This README needs to be expanded to cover a number of additional fields suggested in the WASI Proposal template.