The messaging-core
world includes the basic imports
and exports the incoming-handler
,
enabling the component to handle incoming messages without request/reply capabilities.
- Imports:
- interface
wasi:messaging/[email protected]
- interface
wasi:messaging/[email protected]
- interface
- Exports:
- interface
wasi:messaging/[email protected]
- interface
Import interface wasi:messaging/[email protected]
A type alias for list> to represent metadata attached to a message
string
A type alias for string to represent a message topic
A connection to a message-exchange service (e.g., buffer, broker, etc.).
Errors that can occur when using the messaging interface.
-
The request or operation timed out.
-
An error occurred with the connection. Includes a message for additional context
-
A permission error occurred. Includes a message for additional context
-
A catch all for other types of errors
self
: borrow<client
>
- result<_,
error
>
- own<
message
>
The topic/subject/channel this message was received on, if any
self
: borrow<message
>
- option<
topic
>
An optional content-type describing the format of the data in the message. This is sometimes described as the "format" type
self
: borrow<message
>
Set the content-type describing the format of the data in the message. This is sometimes described as the "format" type
self
: borrow<message
>content-type
:string
An opaque blob of data
self
: borrow<message
>
Set the opaque blob of data for this message, discarding the old value
self
: borrow<message
>data
: list<u8
>
Optional metadata (also called headers or attributes in some systems) attached to the message. This metadata is simply decoration and should not be interpreted by a host to ensure portability across different implementors (e.g., Kafka -> NATS, etc.).
self
: borrow<message
>
- option<
metadata
>
Add a new key-value pair to the metadata, overwriting any existing value for the same key
self
: borrow<message
>key
:string
value
:string
Set the metadata
Remove a key-value pair from the metadata
self
: borrow<message
>key
:string
Import interface wasi:messaging/[email protected]
The producer interface is used to send messages to a channel/topic.
#### `type message` [`message`](#message)
#### `type error` [`error`](#error)
#### `type topic` [`topic`](#topic)
----
Sends the message using the given client.
- result<_,
error
>
Export interface wasi:messaging/[email protected]
#### `type error` [`error`](#error)
#### `type topic` [`topic`](#topic)
----
Whenever this guest receives a message in one of the subscribed topics, the message is sent to this handler. The guest is responsible for matching on the topic and handling the message accordingly. Implementors (such as hosts) calling this interface should make their own decisions on how to handle errors returned from this function.
- result<_,
error
>