Please note that the first distributed actor proposal is in swift evolution review right now: SE-0336: Distributed actor isolation
We'd really appreciate your input on that one. It covers the distributed actor isolation semantics and how
SerializationRequirements are enforced on distributed methods.
Since many questions have been coming up about the runtime details of the distributed actor feature, which the first proposal does not touch upon, we decided to pitch this second proposal already, so those curious can spend time understanding the entirety of the feature, and how all the type-checking works in tandem with the runtime.
Reading this pitch can be helpful in gaining a deeper end-to-end understanding of distributed actors, however it dives quite deep into the implementation details of distributed actor systems, and how their remote calls are actually implemented.
This pitch can also be viewed as an implementation guide for potential distributed actor system authors, and at the same time is probably too low-level for day-to-day users of distributed actors, which may be better served by the first, type-system focused proposal.
Having that said, I hope you'll enjoy the read, and us sharing the entirety of our design so far.
This proposal won't go to review for quite some time still, especially over the holiday break, however for those interested, please enjoy and let us know any feedback you might have. Though most importantly, we are interested in feedback about the type-system aspects in the SE-0336: Distributed actor isolation review right now, as it runs until December 22nd.
Table of Contents:
Distributed Actor Runtime
- Table of Contents
- Implicit Distributed Actor Properties
- Initializing Distributed Local Actors
- Ready-ing Distributed Actors
- Resolving Distributed Actors
- Distributed Methods
- Future Work
- Alternatives Considered
- Acknowledgments & Prior Art
- Source compatibility
- Effect on ABI stability
- Effect on API resilience
As usual, thanks a lot in advance for your comments.
Editorial fixes and comments, like typos, please submit directly to the Swift Evolution PR: [WIP] Distributed Actors Runtime Proposal by ktoso · Pull Request #1498 · apple/swift-evolution · GitHub - thanks!
[edit: fixed the links]