apple / swift-cluster-membership

Distributed Membership Protocol implementations in Swift
https://apple.github.io/swift-cluster-membership/
Apache License 2.0
201 stars 20 forks source link

Concurrency update #99

Open akbashev opened 1 month ago

akbashev commented 1 month ago

Motivation

Library being written even before async/await. So now, even though it supports it partly, with upcoming Swift 6 release and strict concurrency we should update it.

Plan

First steps after looking at the state of library, should be straightforward (in a way):

Will assume, that when finished library will be compatible with Swift 6. But here comes a bit different question—could code and design be even more clear having async/await, actors and etc. To answer this question, as a next steps I want to remove EventLoop and Promises in SWIMNIOExample and see how it works. Based on that experience would be interesting to check if any design updates even needed.

akbashev commented 1 month ago

@ktoso I will create a draft PR, so it will be easier for me to return to this topic from time to time and not to forget. Basically it's already working at that stage, but I've been updating all the errors and warning reactively, so not much thought in it. :) Now a time to think a bit more about design overall. Though, if you already have some thoughts on current progress—please feel free to comment.