Skip to content

feat: add actor interop operators#22

Merged
dbrattli merged 4 commits into
mainfrom
actor-interop
Apr 6, 2026
Merged

feat: add actor interop operators#22
dbrattli merged 4 commits into
mainfrom
actor-interop

Conversation

@dbrattli
Copy link
Copy Markdown
Collaborator

Summary

  • Add ActorInterop module bridging Fable.Actor with Fable.Reactive observables
  • Four operators: subscribeActor (sink to actor), flatMapActor (fire-and-forget merge), mapActor (backpressured request-reply), ofActor (actor-backed subject)
  • Wire all operators through the Reactive facade module, consistent with existing codebase patterns
  • Update Fable.Actor to 5.0.0-rc.8 with qualified Actor.spawn/kill/call usage throughout
  • Simplify CI publish workflow and justfile release flow

Test plan

  • All 132 tests pass including 4 new ActorInterop tests
  • Verify Fable transpilation compatibility

🤖 Generated with Claude Code

dbrattli and others added 4 commits March 29, 2026 22:27
Add ActorInterop module with subscribeActor, flatMapActor, mapActor, and
ofActor operators for bridging Fable.Actor with Fable.Reactive. Make the
module internal and expose operators through the Reactive facade. Change
ofActor to return actor/observable pair (subject pattern). Update
Fable.Actor to 5.0.0-rc.8 and use qualified Actor.spawn/kill/call
throughout. Update CI workflow and justfile for simplified release flow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use spawnLinked with a monitor actor so that if the processing actor
crashes, the error is forwarded downstream as OnErrorAsync instead of
being silently dropped.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Supervision-aware variant of flatMapActor where a caller-provided
decider controls crash behavior: Escalate forwards as OnError (stream
terminates), Stop drops the crashed item and kills the actor, Restart
respawns the actor for future items. flatMapActor is now defined as
flatMapActorSupervised with always-Escalate.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@dbrattli dbrattli merged commit 92de51c into main Apr 6, 2026
2 checks passed
@dbrattli dbrattli deleted the actor-interop branch April 6, 2026 07: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.

1 participant