#430 · bluetape4k-projects · 2.0.0 · coroutines Flow

Coroutines Flow Operators: Marble Explorer

Follow 66 reactive operators across six families. Select one operator per family and replay its input, rule, output mapping, and terminal contract on a shared time axis.

Key A / inputKey BKey Coutput / resultdropped│ onComplete× onError

transform

Transform & state

Change runtime type, payload, projection, or accumulated state without changing the Flow timeline contract.

7 operators
Step1 / 4

Operator contract

mapIndexed { i, v → "$i:$v" }

Attach a zero-based index per collection.

Marble diagram

input → operator → output

admission

Admission & switching

Decide when values or inner Flows may enter, whether re-entry is dropped, and when collection switches or completes.

9 operators
Step1 / 4

Operator contract

skipUntil(ready)

Drop source values until notifier emits once.

Marble diagram

input → operator → output

time

Time, buffer & window

Use clocks, count boundaries, rolling state, and keys to reshape bursts into paced values, batches, windows, or groups.

17 operators
Step1 / 4

Operator contract

bufferTimeout(maxSize=3, timeout=1.s)

Flush a List when count or timeout wins.

Marble diagram

input → operator → output

combine

Combine & ordering

Coordinate several Flows by sampling, racing, concatenating, merging, repeating, or preserving outer order.

13 operators
Step1 / 4

Operator contract

withLatestFrom(other)

Primary emissions sample the latest secondary value.

Marble diagram

input → operator → output

async

Async & parallel

Run bounded concurrent work, keep or relax result order, transform independent rails, and join them back into a Flow.

10 operators
Step1 / 4

Operator contract

asyncFlow.map(::enrich)

Compose another transform while retaining ordered await.

Marble diagram

input → operator → output

error

Error & signal

Turn deadlines and failures into terminal errors, fallbacks, values, or inspectable signal objects—and restore them.

10 operators
Step1 / 4

Operator contract

catchAndResume(fallback)

On failure, continue with a fallback Flow.

Marble diagram

input → operator → output