-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Labels
explorationExploratory ideas and conceptsExploratory ideas and concepts
Description
Overview
⚠️ The ideas here have not been vetted in detail yet. They are meant to get the creative juices flowing and serve as a starting point for deeper exploration.
Explore integrating duroxide with actor frameworks to create durable actors — actors with persistent state, reliable message delivery, and crash recovery semantics.
Why Durable Actors?
Traditional actor frameworks are in-memory:
- Actor state is lost on crash
- Messages in flight are lost
- Supervision restarts actors from scratch
- No replay of message history
Combining duroxide's durability with the actor model could provide:
- Persistent state that survives crashes
- Durable mailbox with exactly-once delivery
- Replay recovery from message history
- Durable supervision decisions
Concepts to Explore
Concept 1: Actor as Orchestration
- Each actor is a long-running orchestration with
continue_as_new - Messages via external events
- Simple mapping to existing duroxide primitives
Concept 2: Actor System as Provider Extension
- Extend provider with actor-specific operations (mailboxes, state storage)
- Dedicated actor dispatcher
Concept 3: Hybrid Model
- In-memory actor runtime for performance
- Event sourcing to backing orchestration for durability
- Checkpointing to avoid full replay
Concept 4: Virtual Actors (Orleans-style)
- Actors addressable by ID, no explicit lifecycle
- Activate on demand, deactivate after idle
- Location transparent
Concept 5: Supervision Trees with Durable Recovery
- Erlang/Akka-style supervision (OneForOne, OneForAll, RestForOne)
- Supervision decisions recorded in history
- Durable supervision tree structure
Recommended Starting Point
Start with Actor as Orchestration to prove the concept with minimal effort, then evolve based on learnings.
See: proposals/durable-actors.md
Metadata
Metadata
Assignees
Labels
explorationExploratory ideas and conceptsExploratory ideas and concepts