Skip to content

[flow] durable workflows module#1498

Merged
fwbrasil merged 18 commits intomainfrom
kyo-flow-pr
Apr 15, 2026
Merged

[flow] durable workflows module#1498
fwbrasil merged 18 commits intomainfrom
kyo-flow-pr

Conversation

@fwbrasil
Copy link
Copy Markdown
Collaborator

@fwbrasil fwbrasil commented Mar 30, 2026

This new module uses the same technique as kyo-http using Records to track fields. Please see the README for more info. A major omission in this initial version is no persistent FlowStore. I want to have a good solution for relational db support first.

The new module is build on top of kyo-http and supports JVM, JS, and Native.

@fwbrasil
Copy link
Copy Markdown
Collaborator Author

cc/ @ahoy-jon one of the modules we discussed about

infix def ++(other: Dict[K, V]): Dict[K, V] = concat(other)

/** Applies the given function to each key-value pair in this Dict. */
inline def foreach(inline fn: (K, V) => Unit): Unit =
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had compilation crashes. I'll follow up separately on this.

@fwbrasil fwbrasil force-pushed the kyo-flow-pr branch 5 times, most recently from 7a9676e to 7767005 Compare March 30, 2026 21:57
@ahoy-jon
Copy link
Copy Markdown
Collaborator

@fwbrasil thanks a lot, reviewing!

@ahoy-jon
Copy link
Copy Markdown
Collaborator

ahoy-jon commented Apr 2, 2026

So far it's great, I am checking additional stuffs on my machine

@fwbrasil
Copy link
Copy Markdown
Collaborator Author

fwbrasil commented Apr 2, 2026

cool! I've made some fixes and cleanups

@ahoy-jon
Copy link
Copy Markdown
Collaborator

ahoy-jon commented Apr 5, 2026

still at it, so far it's good. Even tested cycle in definitions, it behaves as it should (not easy to express, clear stackoverflow at the right place).

Will do some expressivity tests tomorrow!

fwbrasil and others added 2 commits April 7, 2026 18:36
…ations

Signal can drop notifications if the consumer subscribes after the
producer fires. Replace with Channel[Unit](1) which buffers one
notification so it can never be missed.

Also increase SignalTest.streamChanges sleeps from 2ms to 30ms to
avoid flakiness on loaded CI runners.
channel.poll before Async.race was consuming notifications that arrived
after tryOnce read the store, causing channel.take to block indefinitely.
Drop the poll so notifications flow directly to the race's channel.take.
@fwbrasil fwbrasil merged commit 87412ea into main Apr 15, 2026
3 of 8 checks passed
@fwbrasil fwbrasil deleted the kyo-flow-pr branch April 15, 2026 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants