Relationship Management
How following and connection relationships are established and managed across federated instances.
Following
When Alice follows Bob:
Algorithm: Follow User
Input: follower_id_tag, target_id_tag
Output: Result<()>
1. Create FLLW action token:
- issuer: follower's id_tag
- subject: target's id_tag
- action type: "FLLW"
- Sign with follower's private key (ES384)
2. Store action locally:
- Record in metadata adapter
- Marks that follower follows target
3. Send to target instance:
- POST https://cl-o.{target_id_tag}/api/inbox
- Include signed action token
4. Return successConnection Establishment
Connections require mutual agreement:
Alice sends CONN to Bob
↓
Bob receives, stores CONN
↓
Bob sends CONN to Alice
↓
Alice receives, detects mutual CONN
↓
Connection established (both sides)Connection vs Following
| Aspect | Following | Connection |
|---|---|---|
| Direction | One-way | Bidirectional |
| Consent | None required | Mutual agreement |
| Trust level | Low | High (auto-approval) |
| Use case | Content subscription | Direct messaging, trusted sharing |
Unfollowing
Unfollowing creates a new action that supersedes the previous follow:
Algorithm: Unfollow User
Input: follower_id_tag, target_id_tag
Output: Result<()>
1. Create FLLW action token with removed=true:
- issuer: follower's id_tag
- subject: target's id_tag
- action type: "FLLW"
- removed: true (indicates unfollow)
- Sign with follower's private key (ES384)
2. Store action locally:
- New FLLW action with removed=true
- Supersedes previous FLLW action
- Marks unfollow event
3. Send to target instance:
- POST https://cl-o.{target_id_tag}/api/inbox
- Include signed action token
4. Return success
The removed=true flag indicates this action cancels the previous follow.Disconnecting
Similar to unfollowing, disconnection uses the removed=true flag:
Algorithm: Disconnect
Input: user_id_tag, target_id_tag
Output: Result<()>
1. Create CONN action token with removed=true
2. Store locally (marks disconnection)
3. Send to target instance
4. Target removes connection statusSee Also
- Follow Token - FLLW token details
- Connect Token - CONN token details
- Trust & Distribution - How connections enable auto-approval
- Security - Blocklisting