How cooooing/bass works
Bass is a Go microservice backend for community and game products. User requests enter through BFFs or domain-service APIs; domain services apply business rules and own their data, while the documented architecture uses gRPC and asynchronous outbox/NATS events for cross-service work. Major product domains in the tree include community content, points economy, idle-game actions and state, and agent-driven town worlds. The sampled platform use case demonstrates object upload/download, metadata persistence, audit, and asset resolution. Source excerpts were limited, so uncertain service-to-service wiring is omitted.
Main entry points: service BBS BFF · object_storage.go Object storage · usecase Content domain · object_storage.proto Shared contracts
Components 17
Entry APIs
- BBS BFF
app/bff_bbs/internal/service - Idle BFF
app/bff_game_idle/internal/service - HTTP / gRPC APIs
app/content/internal/server
Community Services
- Content domain
app/content/internal/biz/usecase - Points economy
app/economy/internal/biz/usecase
Game Services
- Idle game
app/game_idle/internal/biz/usecase - Game Town
app/game_town/internal/biz/usecase - Town agent runtime
app/game_town/internal/biz/usecase/world_agent_runner.go
Platform Services
- Object storage
app/platform/internal/biz/usecase/object_storage.go - Storage metadata
app/platform/internal/data/repo/object_storage.go - Metadata database
app/platform/internal/data/schema/object_storage.go - Storage provider client
app/platform/internal/biz/repo/object_storage_client.go
Shared Infrastructure
- Shared contracts
common/proto/app/platform/v1/enum/object_storage.proto - NATS events
- Lua formula engine
common/pkg/util/formula/lua_formula_engine.go
Other components
- Product clients
- Blob storage
Connections 15
- Product clients → BBS BFF: sends requests
- Product clients → Idle BFF: sends requests
- Product clients → HTTP / gRPC APIs: calls APIs
- BBS BFF → Content domain: calls domain APIs
- BBS BFF → Points economy: calls domain APIs
- Idle BFF → Idle game: calls game APIs
- HTTP / gRPC APIs → Content domain: dispatches requests
- Game Town → Town agent runtime: runs agent jobs
- Object storage → Storage metadata: reads and writes
- Object storage → Storage provider client: uploads and downloads
- Storage metadata → Metadata database: persists metadata
- Storage provider client → Blob storage: transfers objects
- Content domain → NATS events: publishes events
- Shared contracts → BBS BFF: defines contracts
- Shared contracts → Object storage: defines enums