OutboxDispatcher — polls outbox_messages every 5 seconds. Dispatches session.uploaded to FeedService and AchievementService; leaderboard.submit to AchievementService. Retries up to 5 times with error logging.
TrackProcessingService — polls track_processing_jobs every 3 seconds. For each job: normalizes track points via PCA, aligns with prior versions via Procrustes 2D, resamples to 1000 waypoints, fuses with running weighted average, computes confidence, freezes a TrackVersion when drift < 0.5m over 10 submissions. Infrastructure for Phase 2 canonical track registry.
DataRetentionService — periodic cleanup of old sessions (configurable retention window).