[Accepted with modifications] SE-0428: Resolve DistributedActor protocols

Hello Swift community,

The review of SE-0428: Resolve DistributedActor protocols ran from March 13 through April 2. The Language Steering Group has decided to accept the proposal with modifications. Specifically, the decision was made to change the spelling of the attached macro in the proposal from @DistributedProtocol to @Resolvable (or @Distributed.Resolvable if disambiguation is needed).

Overall reception of the feature was quite positive, and there was broad agreement that this was a problem worth solving. Feedback received from those that tried the feature validated that it addressed desired use cases.

Much of the discussion centered on the spelling of this feature, both the decision to implement the code generation portion as an attached macro, and the spelling of that macro itself. The Language Steering Group agreed with the arguments that because the core of this feature can be implemented entirely with macro-based code generation, we should surface it as such in the language. The DistributedActor protocol (and protocols which inherit from it) are not new for this proposal, and so the Language Steering Group felt that the macro approach fit squarely within the originally-conceived design philosophy of macros.

With regards to the spelling, the Group agreed that @DistributedProtocol did not accurately capture the functionality this macro implements:

After discussion, the Language Steering Group decided to adopt the author's suggestion of the @Resolvable spelling to capture this meaning. While the name is fairly general, the Group was satisfied that this was acceptable since it would only be visible when users had already imported the Distributed module, and because users could disambiguate as @Distributed.Resolvable as needed.

Thank you to everyone who participated in the review!

Freddy Kellison-Linn
Review Manager


Thank you everyone who participated in the review! Well put up amendment to proposal and implementation shortly!


Hi @ktoso will this be available in Swift 6.0 ?