Promise API
See the documentation on promises for an example of using the Runtime API to create and wait on promises to coordinate between Golem workers or with external systems.
package golem:api;
interface host {
record promise-id {
worker-id: worker-id,
oplog-idx: s32,
}
record worker-id {
component-id: component-id,
worker-name: string
}
record component-id {
uuid: uuid,
}
record uuid {
high-bits: u64,
low-bits: u64
}
record account-id {
account-name: string
}
golem-create-promise: func() -> promise-id;
golem-await-promise: func(promise-id: promise-id) -> list<u8>;
golem-complete-promise: func(promise-id: promise-id, data: list<u8>) -> bool;
golem-delete-promise: func(promise-id: promise-id) -> ();
}