Backend data + architecture design refactor
Status (June 2026): Most of this plan has shipped. Services now live as standalone packages under services/ (chat, dispatcher, notifications, stream, transcoder, rtmp, storage, webhooks, activitypub, geoip, and more). The data layer is split into repositories under persistence/ (config, chat, user, auth, webhook, federated servers). The event bus landed as services/dispatcher, and dependencies are passed in explicitly through Deps structs rather than global getters (see pluginhost/pluginhost.go for a worked example). The notes below are kept as the original design record.