blueskyArchitecture/BlueskyArchitecture.org

10 KiB
Raw Blame History

Bluesky Architecture compared to other social media services

Introduction

Boo!

General social media architectures

Simplistic view 1/2 overview

file:structurizr-1-001-GenericSocial-01.png

Simplistic view 2/2 services

file:structurizr-1-002-GenericSocial-02.png

  • Social media user access the app
  • The app interacts with the API
  • The API is the gateway for the database of posts, responses, likes, etc.

More realistic view 1/4 overview

file:structurizr-1-003-RealisticSocial-01.png

More realistic view 2/4 basic services

file:structurizr-1-004-RealisticSocial-02.png

  • Social media user access the app
  • The app interacts with the API
  • The API is the gateway for the database of posts, responses, likes, etc.
  • The API also captures data for building profiles of users for targeting purposes
  • The algorithmic feed generator guides the API on what posts to place into the app's feed

More realistic view 3/4 the algorithm

file:structurizr-1-005-RealisticSocial-03.png

  • Social media user access the app
  • The app interacts with the API
  • The API is the gateway for the database of posts, responses, likes, etc.
  • The API also captures data for building profiles of users for targeting purposes
  • The algorithmic feed generator guides the API on what posts to place into the app's feed
  • Algorithmic feeds are created by the service administrator, using an app only they have access to

More realistic view 4/4 content moderation

file:structurizr-1-006-RealisticSocial-04.png

  • Social media user access the app
  • The app interacts with the API
  • The API is the gateway for the database of posts, responses, likes, etc.
  • The API also captures data for building profiles of users for targeting purposes
  • The algorithmic feed generator guides the API on what posts to place into the app's feed
  • Algorithmic feeds are created by the service administrator, using an app only they have access to
  • Moderation is also performed by a member of the service's staff, using a dedicate app and services the the user doesn't have access to

Federated social media services

Federated services 1/8 overview

file:structurizr-1-007-FederatedSocial-01.png

Federated services 2/8 internal, administration and content moderation services

file:structurizr-1-008-FederatedSocial-02.png

  • Same as before, the user access the service through an App that uses an API
  • As federated services are small, the administrator and the moderator are the one person
  • No algorithmic feeds, though

    • not popular in the fediverse community
    • difficult to implement in a federated environment.

Federated services 3/8 federation 1

file:structurizr-1-009-FederatedSocial-03.png

  • Same as before, the user access the service through an App that uses an API
  • As federated services are small, the administrator and the moderator are the one person
  • No algorithmic feeds, though

    • not popular in the fediverse community
    • difficult to implement in a federated environment.
  • Federation service to push activity out to the federated network
  • Federation API to take in activity from other nodes
  • A logical database of inbound federated posts
  • Federation using ActivityPub standard

Federated services 4/8 federation 2

file:structurizr-1-010-FederatedSocial-04.png

Federated services 5/8 federation 3

file:structurizr-1-011-FederatedSocial-05.png

Federated services 6/8 federation 4

file:structurizr-1-012-FederatedSocial-06.png

Federated services 7/8 federation 5

file:structurizr-1-013-FederatedSocial-07.png

Federated services 8/8 federation 6

file:structurizr-1-014-FederatedSocial-08.png

Bluesky

Basic Bluesky 1/2

file:structurizr-1-015-BlueskyBasic-01.png

Basic Bluesky 2/2

file:structurizr-1-016-BlueskyBasic-02.png

  • User interfaces with an app hosted by the AppView
  • The AppView includes an API (allowing for bot-like interactions)
  • The AppView stores and reads data from the Personal Data Server (PDS)
  • Bluesky resolved user identities using "DIDs" (Distributed IDs)
  • The Bluesky admin uses a separate service for preparing algorithmic feeds
  • The Bluesky moderator applies labels and actions to posts for trust and safety through a dedicated service

Bluesky Identities

Bluesky Identities 1/4

file:structurizr-1-017-BlueskyIdentity-01.png

  • User's typical Bluesky ID is @<user-handle>.bsky.social

    • e.g. @theauldsthretch.bsky.social
  • Users can set up their own handle, @<user-handle>.<domain>. E.g. (and these are all real IDs) …

    • @astrokatie.com a cosmologist
    • @eibhear.gibiris.org the author
    • @wyden.senate.gov a U.S. Senator
  • User must control the domain or be a legitimate member of the domain's community
  • Domain-based handle resolves to a DID, either by DNS or .well-known:

      $ dig _atproto.eibhear.gibiris.org TXT
      ...
      ;; ANSWER SECTION:
      _atproto.eibhear.gibiris.org. 3600 IN	TXT	"did=did:plc:23mysztmt7dh3l5lzhinzafi"
    
      $ curl https://theauldsthretch.bsky.social/.well-known/atproto-did
      did:plc:avzdf5esd7xpbgsgh7lx4kzq

Bluesky Identities 2/4

file:structurizr-1-018-BlueskyIdentity-02.png

Bluesky Identities 3/4

file:structurizr-1-019-BlueskyIdentity-03.png

Bluesky Identities 3/4

file:structurizr-1-020-BlueskyIdentity-04.png