You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: Sources/SWIM/Docs.docc/index.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -6,17 +6,17 @@ This library aims to help Swift make ground in a new space: clustered multi-node
6
6
7
7
With this library we provide reusable runtime agnostic membership protocol implementations which can be adopted in various clustering use-cases.
8
8
9
-
## Background
9
+
###Background
10
10
11
11
Cluster membership protocols are a crucial building block for distributed systems, such as computation intensive clusters, schedulers, databases, key-value stores and more. With the announcement of this package, we aim to make building such systems simpler, as they no longer need to rely on external services to handle service membership for them. We would also like to invite the community to collaborate on and develop additional membership protocols.
12
12
13
13
At their core, membership protocols need to provide an answer for the question "Who are my (live) peers?". This seemingly simple task turns out to be not so simple at all in a distributed system where delayed or lost messages, network partitions, and unresponsive but still "alive" nodes are the daily bread and butter. Providing a predictable, reliable answer to this question is what cluster membership protocols do.
14
14
15
15
There are various trade-offs one can take while implementing a membership protocol, and it continues to be an interesting area of research and continued refinement. As such, the cluster-membership package intends to focus not on a single implementation, but serve as a collaboration space for various distributed algorithms in this space.
16
16
17
-
## 🏊🏾♀️🏊🏻♀️🏊🏾♂️🏊🏼♂️ SWIMming with Swift
17
+
###🏊🏾♀️🏊🏻♀️🏊🏾♂️🏊🏼♂️ SWIMming with Swift
18
18
19
-
### High-level Protocol Description
19
+
####High-level Protocol Description
20
20
21
21
> For a more in-depth discussion of the protocol and modifications in this implementation we suggest reading the [SWIM API Documentation](https://apple.github.io/swift-cluster-membership/docs/current/SWIM/Enums/SWIM.html), as well as the associated papers linked below.
22
22
@@ -45,7 +45,7 @@ The way Swift Cluster Membership implements protocols is by offering "`Instances
45
45
46
46
The SWIM instance also has built-in support for emitting metrics (using [swift-metrics](https://github.com/apple/swift-metrics)) and can be configured to log details about internal details by passing a [swift-log](https://github.com/apple/swift-log)`Logger`.
47
47
48
-
### Example: Reusing the SWIM protocol logic implementation
48
+
####Example: Reusing the SWIM protocol logic implementation
49
49
50
50
The primary purpose of this library is to share the `SWIM.Instance` implementation across various implementations which need some form of in-process membership service. Implementing a custom runtime is documented in depth in the project’s README (https://github.com/apple/swift-cluster-membership/), so please have a look there if you are interested in implementing SWIM over some different transport.
0 commit comments