ExecutionObserver

Supported integration boundary for actual Tile executions, not compose calls or individual batch keys. All callbacks are synchronous, exception-guarded, and must return promptly. They must not block on Mosaic progress. The integration owns asynchronous export, finalization, and provider shutdown. Callbacks can run concurrently across executions and child coroutines; integrations coordinate their own mutable state.

Mosaic supplies structural data, an optional delegated Tile name, and opaque integration-owned tokens: no keys, values, Canvas contents, request identifiers, or Throwable objects. Integrations control their own token contents. Callback reentry uses normal composition, but does not inherit the surrounding core execution relationship. Provider ambient context is left intact; nested actual executions establish their own core relationship. Caller identities and producer dependencies are forwarded only between Mosaics sharing this exact observer instance. Independently installed observers exchange no core tokens; capturing an integration's own ambient context remains independent. Mosaic neither hashes nor compares provider tokens.

Functions

Link copied to clipboard
abstract fun captureCaller(): CallerContext?

Called only after winning reservations are visible, before acceptance/scheduling.

Link copied to clipboard

Sanitized provider diagnostics. Failures here are contained without recursive reporting.

Link copied to clipboard

Receives a fixed execution description. Returning null opts out of this execution's observation.