pullStamped

Like pull, but each record carries its ordering StampedLogRecord.rgaId — the producer identity and cross-device total-order key needed to merge several devices' logs into one timeline. Same convergence and timeout semantics as pull; the only difference is that the RGA's per-element ids are surfaced rather than discarded.

A collector total-orders across devices by sorting the union of every device's stamped artifact on StampedLogRecord.rgaId (see StampedLogRecord).

Samples

val exporter = WarpLogRecordExporter(
    replica = ReplicaId("device-uuid-abc123"),
    store = InMemoryDurableStore(),
)
val loom = InMemoryLoom()
val host = installLogTap(loom, exporter, scope)

// Pull the backlog stamped: each record carries its ordering RgaId (producer +
// cross-device total-order key). To build one timeline across several devices,
// pull each device's stamped logs and sort the union on rgaId.
val client = LogTapClient(loom.join(InMemoryTag("puller")), scope)
val stamped: List<StampedLogRecord> = client.pullStamped()
val merged = stamped.sortedBy { it.rgaId }

client.close()
host.close()
return merged