SysPadExamples › Collaboration platform

Collaboration platform

A Notion/Slack-style product: AppSync realtime doc sync + WebSocket chat + Redis Streams presence (Realtime Layer), a DocumentDB/Neptune/MemoryDB/DynamoDB data tier (grouped VPC), and an App Runner integrations service flagged as tech debt.

Using logical clusters to keep a 13-node architecture readable - a collapsed data-tier VPC, an expanded realtime layer, and a colour-coded tech-debt callout.

Web App Users Load Balancer ALB Collaboration Servi… EKS Fargate Auth Cognito AT LIMIT Doc Sync (AppSync) AppSync Chat (WebSocket) API Gateway Presence Fan-out Redis Stream Content Store DocumentDB AT LIMIT Permissions Graph Neptune AT LIMIT Session State MemoryDB Message History DynamoDB Integrations Bot App Runner PDF Scratch (EFS) EFS

How it works

Doc Sync (AppSync)
Pushes document changes to everyone with the page open, so a collaborator sees an edit without asking for it. Three resolvers per request is the real cost of a GraphQL response assembled from several sources.
Chat (WebSocket)
Chat needs a connection held open, not a request answered. Cost here follows connection-minutes and messages per connection, which is a different shape from every HTTP node on this canvas.
Presence Fan-out
Who is online and where their cursor is. A capped stream rather than a database, because presence is worthless the moment it is stale and nobody wants it kept.
Permissions Graph
"Can this person see this page, through any group they belong to?" is a graph traversal. Answering it in SQL means recursive joins that get slower as the org chart grows.
Integrations Bot
Flagged as tech debt on purpose. It takes 5% of traffic but 300ms per request and writes to a shared filesystem, which is why it sits in its own group rather than pretending to belong with the rest.

Other reference architectures

Open this architecture in SysPad · All examples