How zl1nq/interlinked works
interlinked is a Vue/Go social network. Users browse and publish feeds, follow people, interact through likes and comments, and use discovery, notifications, and direct messages; the frontend calls the Go API, whose handlers delegate domain work to services and repositories. The README documents hybrid push/pull timelines and reliable Outbox/RabbitMQ delivery. Some feature implementations were not sampled, so their documented subsystems are included without guessing internal call chains.
Main entry points: router.go API router · user_service.go User service · follow_service.go Follow service · feed_service.go Feed service
Components 22
Web client
- Vue application
frontend/src/App.vue - Social pages
frontend/src/views - API client
frontend/src/api/index.js
Accounts and relationships
- User handlers
backend/handlers/user_handler.go - User service
backend/services/user_service.go - Follow service
backend/services/follow_service.go - SMTP mail
Feed and discovery
- Feed handlers
backend/handlers/feed_handler.go - Feed service
backend/services/feed_service.go - Discovery service
backend/services/discover_service.go - Feed repository
backend/repository/feed_repository.go
Messaging and notifications
- Message handlers
backend/handlers/message_handler.go - WebSocket handler
backend/handlers/ws_handler.go - Message service
backend/services/message_service.go - Notification service
backend/services/notification_service.go
Runtime and storage
- API router
backend/router/router.go - Outbox worker
backend/services/outbox_service.go - Backend startup
backend/main.go - MySQL
- Redis
- RabbitMQ
Other components
- Social user
Connections 29
- Social user → Vue application: uses
- Vue application → Social pages: renders
- Social pages → API client: requests
- API client → API router: calls API
- Backend startup → API router: sets up
- API router → User handlers: dispatches
- API router → Feed handlers: dispatches
- API router → Message handlers: dispatches
- API router → WebSocket handler: dispatches
- User handlers → User service: calls
- User service → MySQL: reads/writes
- User service → Redis: uses cache
- User service → SMTP mail: sends codes
- API router → Follow service: dispatches
- Follow service → MySQL: reads/writes
- Follow service → Redis: updates cache
- Follow service → Notification service: creates notices
- Feed handlers → Feed service: calls
- Feed service → Feed repository: queries
- Feed repository → MySQL: reads/writes
- Feed service → Redis: uses timeline cache
- Feed service → Notification service: creates notices
- API router → Discovery service: dispatches
- Discovery service → MySQL: reads
- Message handlers → Message service: calls
- WebSocket handler → Message service: sends and reads
- Message service → MySQL: reads/writes
- Backend startup → Outbox worker: starts worker
- Outbox worker → RabbitMQ: publishes events