Design: Media Sharing in Messages
Design covers media upload, storage, message integration, delivery, and retrieval. Does not cover user authentication or message text-only features.
Functional Requirements
Non-Functional Requirements
Client App | | Upload media + message v API Gateway / Media Upload Service | | Store media file -> Object Storage (S3) | Send media info -> Media Processing Service | Store message + media metadata -> Message DB | Media Processing Service | | Generate thumbnails, transcode if needed | Update media metadata in DB | CDN <-> Object Storage | Client App (media retrieval via CDN with signed URLs) Cache Layer (Redis) for media metadata caching Message Service handles message delivery with media references
Pass the test and this pattern moves unknown