Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions components/StackDiagram.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export function StackDiagram() {
<svg className="guide-diagram-svg" viewBox="0 0 760 500" role="img" aria-labelledby="stack-title stack-desc">
<title id="stack-title">The Hypercerts stack</title>
<desc id="stack-desc">
Records live in many PDSs, some hosted by the Hypercerts Foundation as Certified PDSs and some independent. The Hypercerts Relay collects changes from them, Jetstream filters those changes to Hypercerts and Certified records, and the Hypercerts API maintains a searchable view. Labelers publish labels that the API can include in query results. Applications read through the SDK or the API. To write, users sign in through the entryway, from your application or from certified.app, where they manage their account. Signed-in users and groups acting through the Certified Group Service write to the same Certified PDSs. The feed service provides feeds to applications on its own.
Records live in many PDSs, some hosted by the Hypercerts Foundation as Certified PDSs and some independent. The Hypercerts Relay collects changes from them, Jetstream filters those changes to Hypercerts and Certified records, and the Hypercerts API maintains a searchable view.{' '}{/* Labelers publish labels that the API can include in query results. */}{' '}Applications can query labelers directly for labels. Applications read through the SDK or the API. To write, users sign in through the entryway, from your application or from certified.app, where they manage their account. Signed-in users and groups acting through the Certified Group Service write to the same Certified PDSs. The feed service provides feeds to applications on its own.
</desc>
<defs>
<marker id="stack-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
Expand Down Expand Up @@ -71,8 +71,9 @@ export function StackDiagram() {
{/* Read side */}
<Node x={404} y={150} w={186} title="Hypercerts API" role="searchable XRPC API" accent />
<Node x={610} y={150} w={134} title="Labelers" role="publish labels" />
<Edge d="M608 178 H594" />
<text className="gd-caption" x="600" y="142" textAnchor="middle">labels</text>
{/* <Edge d="M608 178 H594" />
<text className="gd-caption" x="600" y="142" textAnchor="middle">labels</text> */}
<Edge d="M677 148 C 677 122, 642 101, 584 74" label="label queries" labelX={637} labelY={108} />
<Edge d="M497 148 V92" label="SDK / API" labelX={497} labelY={118} />

<Node x={404} y={256} w={130} h={52} title="Hypercerts Relay" role="collects changes" />
Expand Down
2 changes: 1 addition & 1 deletion lib/navigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export const navigation = [
{ title: "Entryway", path: "/reference/services/entryway" },
{ title: "Certified Group Service", path: "/reference/services/certified-group-service" },
{ title: "Relay and Jetstream", path: "/reference/services/relay" },
{ title: "Hypercerts API", path: "/reference/services/hypercerts-api" },
{ title: "Indexer and Hypercerts API", path: "/reference/services/hypercerts-api" },
{ title: "Labelers", path: "/reference/services/labelers" },
{ title: "Feed Service", path: "/reference/services/feed-service" },
],
Expand Down
7 changes: 4 additions & 3 deletions pages/reference/services/hypercerts-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The **indexer** is the API's internal pipeline for building its searchable view,

## Where it fits

The indexing pipeline reads record changes delivered by [Jetstream](/reference/services/relay) and uses labels published by the [labelers](/reference/services/labelers). Applications call the Hypercerts API directly or through the [SDK](/reference/sdk). The [Feed Service](/reference/services/feed-service) is a separate reader of indexed Hypercerts data. See the [services overview](/reference/services) for the full diagram.
The indexing pipeline reads record changes delivered by [Jetstream](/reference/services/relay). <!-- Previously claimed that it also uses labels published by the [labelers](/reference/services/labelers). --> Applications call the Hypercerts API directly or through the [SDK](/reference/sdk). The [Feed Service](/reference/services/feed-service) is a separate reader of indexed Hypercerts data. See the [services overview](/reference/services) for the full diagram.

## AT Protocol background

Expand All @@ -35,7 +35,8 @@ The indexing pipeline:

1. **Reads records from Jetstream**, which delivers Hypercerts and Certified record changes as JSON events and keeps an archive for catching up on the past.
2. **Links related records.** An evaluation, for example, points to the activity it evaluates. The index connects those records so a query can return an activity with related context, such as its author's profile and contributors, where supported by the method.
3. **Uses labels.** It incorporates labels published by Hypercerts labelers, so results can include signals such as a quality tier or "likely test data."

<!-- 3. **Uses labels.** It incorporates labels published by Hypercerts labelers, so results can include signals such as a quality tier or "likely test data." -->

Coverage follows from the sources: the API sees records on PDSs followed by the Hypercerts Relay and in the collections Jetstream keeps. A record missing from a result may be outside that coverage.

Expand Down Expand Up @@ -63,7 +64,7 @@ Choose another read path when it better fits your use case:

- **Read a known record directly from its repository.** Use `com.atproto.repo.getRecord` when you know the record's address. See [Certified PDSs](/reference/services/certified-pdss).
- **Follow live record changes.** Use Jetstream for a custom live view or lossless change processing. See [Relay and Jetstream](/reference/services/relay).
- **Read labels directly.** Query a [labeler](/reference/services/labelers) for special cases; the Hypercerts API already includes labels in its query results.
- **Read labels directly.** Query a [labeler](/reference/services/labelers) when your application needs label data. <!-- Previously: Query a [labeler](/reference/services/labelers) for special cases; the Hypercerts API already includes labels in its query results. -->
Comment thread
Kzoeps marked this conversation as resolved.
- **Design against the Lexicons.** API results follow the [Hypercerts lexicons](/lexicons/hypercerts-lexicons) and [Certified lexicons](/lexicons/certified-lexicons).

## Status and source
Expand Down
4 changes: 2 additions & 2 deletions pages/reference/services/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ This section describes each service at the level a project needs to integrate wi
| [Entryway](/reference/services/entryway) | Signs users in to their Certified accounts | Under development; the Certified PDSs handle sign-in today |
| [Certified Group Service](/reference/services/certified-group-service) | Lets several people manage one group account with different roles | Running |
| [Relay and Jetstream](/reference/services/relay) | The relay collects record changes from PDSs across the network; Jetstream filters them down to Hypercerts and Certified records | Running |
| [Hypercerts API](/reference/services/hypercerts-api) | Serves XRPC queries over a searchable view of Hypercerts and Certified records | Running |
| [Labelers](/reference/services/labelers) | Publish labels about records and accounts, such as "likely test data", that the Hypercerts API and applications can use | Running |
| [Indexer and Hypercerts API](/reference/services/hypercerts-api) | Serves XRPC queries over a searchable view of Hypercerts and Certified records | Running |
| [Labelers](/reference/services/labelers) | Publish labels about records and accounts, such as "likely test data", that applications can query directly. <!-- Previously: Publish labels about records and accounts, such as "likely test data", that the Hypercerts API and applications can use --> | Running |
| [Feed Service](/reference/services/feed-service) | Serves ready-made feeds of recent Hypercerts activity | Running |

## Running services
Expand Down
4 changes: 2 additions & 2 deletions pages/reference/services/labelers.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Hypercerts runs two labelers. The Activity Labeler rates the quality of Hypercer

## Where it fits

The labelers sit beside the main read path. They take in records from the relay and publish labels. The [Hypercerts API](/reference/services/hypercerts-api) includes those labels in its query results, and the [Feed Service](/reference/services/feed-service) uses Orglabeler labels to filter organizations. Your application can also read labels directly. The [services overview](/reference/services) has the full diagram.
The labelers sit beside the main read path. They take in records from the relay and publish labels. Your application can read labels directly from a labeler. The [Feed Service](/reference/services/feed-service) uses Orglabeler labels to filter organizations. <!-- The [Hypercerts API](/reference/services/hypercerts-api) includes those labels in its query results. --> The [services overview](/reference/services) has the full diagram.

## AT Protocol background

Expand Down Expand Up @@ -86,7 +86,7 @@ When you use labels:
- **Treat labels as signals, not verdicts.** A `standard` organization is not a bad one. It has filled in fewer fields.
- **Handle the unlabeled case.** New records and accounts are labeled a short time after they appear, so keep a fallback for subjects with no label yet.

The [Hypercerts API](/reference/services/hypercerts-api) includes labels published by the labelers. Query a labeler directly only for special cases.
For labels, query a [labeler](/reference/services/labelers) directly. <!-- The [Hypercerts API](/reference/services/hypercerts-api) includes labels published by the labelers. Query a labeler directly only for special cases. -->

## Status and source

Expand Down
Loading