Introduction
Stratos is a private permissioned data layer for ATprotocol. It keeps private records out of public purview, publishes enrollment metadata back to the PDS for discovery, and lets downstream apps serve boundary-filtered content without inventing a separate identity model.
What Problem Does It Solve?
ATprotocol is designed for open, public social data. Every record on a PDS is visible to anyone who knows the AT-URI. Stratos adds a permissioned layer on top: users can create posts that are only visible to members of specific communities, without leaving the AT Protocol identity and tooling ecosystem.
How It Works
- A user enrolls with a Stratos service via OAuth. The service writes a
zone.stratos.actor.enrollmentrecord to the user's PDS. - The user creates private records by calling the Stratos XRPC API. Records are stored in the user's per-actor repo on Stratos, not on the PDS. Nothing is written to the PDS on the record write path; hydrated records carry a
sourcefield pointing back to Stratos. - A standalone indexer subscribes to the PDS firehose (to discover enrollments) and to each user's
subscribeRecordsstream (to index records with their boundary metadata). - An AppView queries the indexed PostgreSQL tables. When a viewer requests a feed, the AppView filters posts to only those whose boundaries overlap with the viewer's enrolled boundaries.
Repository Packages
| Package | Description |
|---|---|
stratos-core | Domain logic, storage interfaces, schema, validation, MST commit builder |
stratos-service | HTTP/XRPC service, OAuth enrollment, repo CRUD, sync export, adapters |
stratos-client | Discovery, routing, verification, and OAuth scope helpers |
stratos-indexer | Standalone indexer consuming PDS + Stratos streams into AppView PostgreSQL |
webapp | Svelte demo client for enrollment and private posting |
lexicons | JSON-based lexicon definitions |
Architecture
For a deeper dive into the technical details of Stratos, see the following documentation:
- Hydration Architecture — How Stratos uses the source field pattern to keep data private.
- Indexer Architecture — How the standalone indexer consumes PDS and Stratos sync streams.
- Enrollment Signing — How user keys and boundary attestations are managed.
- Multi-Domain Enrollment — How users can enroll in multiple boundaries across different services.
Next Steps
- Read the Glossary for key terms and concepts.
- Follow the First Post Tutorial to get started as a user.
- Follow the Client Integration Guide to add Stratos to your app.
- See the Operator Guide to deploy a Stratos service.
- Explore the Architecture for deep technical detail.