System Design: End-to-End Image Object-Detection Platform
Context
Design a production system that accepts user-submitted images, detects objects, and returns results via APIs. The system should be scalable, observable, cost-aware, and safe to operate.
Requirements to Specify
-
Functional
-
Image ingestion (sync and async), object detection, result retrieval.
-
API definitions and idempotency.
-
Error handling and retries.
-
Non-Functional
-
Accuracy (e.g., mAP targets), latency budgets (P50/P95), throughput, availability, durability, and SLOs.
-
Cost targets and multi-tenancy considerations.
Architecture to Propose
-
High-level components: API gateway, ingestion, storage (raw and derived), preprocessing, model serving, asynchronous workers/queues, result storage, and an admin console.
-
Data and model versioning: training/eval datasets, model registry, schema evolution.
-
Batching strategy, GPU utilization, autoscaling strategies, and caching layers.
ML Considerations
-
Model choices: single-stage vs. two-stage detectors; when to use each.
-
Training and labeling pipeline: data sources, labeling strategy, active learning, augmentation.
-
Evaluation metrics: mAP, precision/recall, latency/throughput.
-
Online/offline monitoring and A/B testing plan.
Operations and Safety
-
Failure modes and backpressure handling.
-
Privacy, security, and compliance controls.
-
Cost controls and capacity planning.
-
Deployment: blue/green, canary, and rollback strategy.