How osutitanic/titanic works
Titanic’s sampled Go product surface comprises Stern, the website for an osu! private server, and Jobs, its background task runner, backed by shared domain and persistence packages. The user-facing path begins with a browser request, reaches Stern’s HTTP routes, and returns rendered pages; the route tree documents account, forum, beatmap, ranking, and wiki features. Jobs provides a separate scheduled-task capability. Several route and task implementations were not sampled, so links from them into shared services are omitted where ownership cannot be verified.
Main entry points: web/main.go Stern HTTP server · service.go Wiki service · cli/main.go Jobs command · routes Website routes
Components 24
Stern Website
- Stern HTTP server
services/stern/cmd/web/main.go - Website routes
services/stern/internal/routes - Page rendering
services/stern/internal/templates/engine.go - Browser scripts
services/stern/web/static/js - Wiki service
services/stern/internal/wiki/service.go - Account routes
services/stern/internal/routes/account_login.go - Forum routes
services/stern/internal/routes/forum_topics.go - Beatmap routes
services/stern/internal/routes/beatmaps.go - Ranking routes
services/stern/internal/routes/rankings_global.go
Shared Domain
- Application state
internal/state/state.go - Domain repositories
internal/repositories - Domain schemas
internal/schemas - Authentication
internal/authentication - Score performance
internal/performance - Ranking services
internal/rankings/service.go
Background Jobs
- Jobs command
services/jobs/cmd/cli/main.go - Task scheduler
services/jobs/internal/scheduler/scheduler.go - Background tasks
services/jobs/internal/tasks
Resource Delivery
- Beatmap resolver
internal/resources/provider_storage.go - Storage interface
internal/storage/storage.go - Local storage
internal/storage/local.go - S3 storage
internal/storage/s3.go
Other components
- Browser user
- Configured storage backend
Connections 15
- Browser user → Stern HTTP server: sends requests
- Stern HTTP server → Website routes: dispatches requests
- Website routes → Page rendering: renders pages
- Page rendering → Browser user: returns HTML
- Browser user → Browser scripts: loads scripts
- Stern HTTP server → Application state: initializes
- Stern HTTP server → Wiki service: registers service
- Wiki service → Domain repositories: reads and writes
- Wiki service → Domain schemas: builds records
- Jobs command → Application state: initializes
- Jobs command → Task scheduler: runs schedules
- Task scheduler → Background tasks: dispatches tasks
- Beatmap resolver → Storage interface: reads objects
- Local storage → Configured storage backend: stores objects
- S3 storage → Configured storage backend: stores objects