Design a Data Labeling and Annotation Platform — System Design Interview Practice
Design a data labeling platform that supports image, text, and audio annotation, manages labeling workflows, ensures label quality, and provides active learning-based sample selection. Work through the requirements, architecture trade-offs, and an interactive design review.
What does the "Design a Data Labeling and Annotation Platform" problem ask you to design?
Design a data labeling platform that supports image, text, and audio annotation, manages labeling workflows, ensures label quality, and provides active learning-based sample selection. It is a practice challenge with Medium difficulty, about 45-60 minutes.
Concepts and architecture decisions to consider
- mlopsConcept to explore
- data labelingConcept to explore
- annotationConcept to explore
- active learningConcept to explore
- data qualityConcept to explore
- crowdsourcingConcept to explore
Interview prompt
Design a multimodal data-labeling platform for image, text, and audio tasks with collaborative workflows, consensus quality controls, active-learning prioritization, and exportable dataset versions.
- Define immutable source items, task schemas, annotation versions, assignments, consensus, adjudication, quality scores, and dataset snapshots.
- Support concurrent annotation without lost work, model-assisted suggestions, gold tasks, reviewer queues, disagreement handling, and active learning.
- Separate asset storage and task orchestration from browser collaboration, quality analytics, model training, and export pipelines.
- Explain tenant isolation, PII/access controls, moderation, auditability, retries, recovery, observability, and offline/degraded annotation.
Requirements and scale assumptions
- Create multimodal projects and schemas, import assets, assign tasks, annotate collaboratively, validate labels, adjudicate conflicts, and export versions.
- Provide pre-label suggestions, gold questions, reviewer workflows, throughput/quality dashboards, active-learning queues, and incremental exports.
- Support task lease expiry, annotation history, asset deletion, dataset rollback, annotator permissions, and recovery after browser/worker failure.
- Persist annotation changes with conflict-safe versions and update task/quality status quickly for active annotators.
- Scale to 10k concurrent annotators and 100M assets without a single hot key or unbounded synchronous work.
- Do not lose committed state; make retries and duplicate events safe.
- Degrade safely when downstream workers, caches, or external dependencies fail.
- 100M assets, 10k concurrent annotators, and multimodal projects
- Partition by the primary tenant, user, item, or geographic key and isolate hot partitions.
- Keep serving state bounded; retain raw events or durable records for replay and auditing.
- Peak scale: 100M assets; 10k annotators — Capacity assumption that drives partitioning and backpressure.
- Latency target: annotation save p95 < 500ms — User-facing budget for the primary request or read path.
- Durable boundary: Committed before async — Versioned annotations and dataset manifests are authoritative; task queues, suggestions, and dashboards are derived.
- Async boundary: At-least-once workers — Keep Use Label Studio or CVAT as open-source base, Implement active learning for intelligent sample selection, Use pre-trained models for label suggestions off the synchronous path.
Key entities
- SourcePartitionsourceId, partitionId, cursor, schemaVersion, watermark, status
Replayable data labeling and annotation platform source evidence and ingestion cursor.
- SchemaVersiondatasetId, version, compatibility, owner, effectiveAt, status
Governed data labeling and annotation platform contract used to validate producers and consumers.
- ProcessingRunrunId, inputWatermark, checkpoint, qualityStatus, codeVersion, status
Checkpointed data labeling and annotation platform processing attempt with quality and lineage metadata.
- AnalyticalDatasetdatasetId, partition, watermark, schemaVersion, qualityStatus, location
Curated data labeling and annotation platform serving partition with freshness and quality state.
Data flow
- 1. Register sources and contractsThe data labeling and annotation platform catalog records owners, schemas, compatibility rules, retention, lineage, and partitioning before data is accepted.
- 2. Ingest with backpressureConnectors checkpoint data labeling and annotation platform source cursors, validate schema and deduplication keys, and slow producers when downstream capacity is exhausted.
- 3. Process event time with checkpointsStream or batch engines compute data labeling and annotation platform transformations using watermarks, late-data policy, state checkpoints, and deterministic code versions.
- 4. Publish quality-gated datasetsOnly data labeling and annotation platform outputs that pass completeness, freshness, validity, and privacy checks become visible to analytical consumers.
- 5. Serve, replay, and reconcileConsumers read bounded partitions with freshness metadata while operators replay failed data labeling and annotation platform ranges and compare output checksums.
Deep dives and trade-offs
- Schema evolution and data qualityVersion data labeling and annotation platform contracts and make compatibility rules explicit for every producer and consumer. Quarantine malformed partitions instead of poisoning the whole dataset. Track row counts, null rates, duplicates, distribution changes, and policy violations by partition.
- Watermarks, late data, and exactly-once effectsUse source cursors and event-time watermarks for data labeling and annotation platform progress, not wall-clock assumptions. Make checkpoints, output keys, and sink commits retry-safe under at-least-once delivery. Document how late events revise windows, aggregates, or snapshots.
- Replay, lineage, and costKeep immutable data labeling and annotation platform raw evidence and code or schema versions so failed outputs can be reproduced. Separate hot serving storage from cold retention and cap replay concurrency. Measure freshness, backlog, compute cost, storage growth, and quality-gate failure rate.
- Streaming versus batchUse streaming for freshness-critical data labeling and annotation platform paths and batch for backfills, compaction, and expensive recomputation. Forcing every workload into streaming makes state, replay, and cost harder to operate.
- Raw retention versus curated-only storageRetain enough immutable raw evidence for replay, audit, and correction, then tier or expire it according to policy. Without raw evidence, a bad transformation can require an unreproducible emergency fix.
- Central warehouse versus domain-owned datasetsCentralize governance and discovery while letting domain owners own contracts and quality signals. A single team owning every transformation becomes a delivery bottleneck and hides data ownership.
Frequently asked questions
What are the key requirements for "Design a Data Labeling and Annotation Platform"?
Key requirements include: Create multimodal projects and schemas, import assets, assign tasks, annotate collaboratively, validate labels, adjudicate conflicts, and…; Provide pre-label suggestions, gold questions, reviewer workflows, throughput/quality dashboards, active-learning queues, and incremental…; Support task lease expiry, annotation history, asset deletion, dataset rollback, annotator permissions, and recovery after browser/worker….
What scale should I assume for "Design a Data Labeling and Annotation Platform"?
Plan for: 100M assets, 10k concurrent annotators, and multimodal projects; Partition by the primary tenant, user, item, or geographic key and isolate hot partitions; Keep serving state bounded; retain raw events or durable records for replay and auditing.
What are the main trade-offs in "Design a Data Labeling and Annotation Platform"?
Streaming versus batch: Use streaming for freshness-critical data labeling and annotation platform paths and batch for backfills, compaction, and expensive recomputation. Raw retention versus curated-only storage: Retain enough immutable raw evidence for replay, audit, and correction, then tier or expire it according to policy. Central warehouse versus domain-owned datasets: Centralize governance and discovery while letting domain owners own contracts and quality signals.
What are the core entities in "Design a Data Labeling and Annotation Platform"?
The core entities are SourcePartition, SchemaVersion, ProcessingRun, AnalyticalDataset.
What are common mistakes when designing "Design a Data Labeling and Annotation Platform"?
Treating data labeling and annotation platform ingestion success as proof that downstream data is complete or correct; Dropping late events or schema failures without a quarantine and replay path; Using wall-clock processing time where event-time windows and watermarks are required.