NEW
Also known as: FIFO
First-in, first-out structure or service that orders items for sequential processing.
DESCRIPTION
A queue is an ordered data structure and messaging primitive that processes elements in first-in, first-out sequence. In code, abstract queues buffer tasks between producers and consumers. In distributed systems, message queues decouple services, smooth spikes, and improve resilience. Implementations vary from in-memory buffers to durable brokers supporting acknowledgments and delivery semantics. Queues underpin stream processing, event-driven architectures, and asynchronous workflows. Key concerns include throughput, latency, exactly-once or at-least-once semantics, and backpressure. Monitoring depth and lag helps maintain system health. Persistent queues support recovery and replay in failure scenarios.
ALTERNATIVE DEFINITIONS
Oracle Java SE
A collection designed for holding elements prior to processing.
Defines queue as a collection type with ordering for processing.
Microsoft .NET
Represents a first-in, first-out collection of objects.
Emphasizes FIFO behavior in the .NET library.
GeeksforGeeks
Queue is a linear data structure that follows a First In First Out (FIFO) order.
Pedagogical focus on linear structure and FIFO order.
RELATED TERMS
Deque Priority Queue Message Broker Apache Kafka RabbitMQ Amazon SQS Backpressure Producer-Consumer Event Streaming
COMPETING TERMS
Stack
RELATIONS
- Narrower: Dead Letter Queue Message Queue
KNOWLEDGE AREAS
Data Engineering Software Engineering Real-time & Streaming Data Infrastructure
TARGET AUDIENCE
Software Developer Data Engineer DevOps Engineer Cloud Architect
EXTERNAL SOURCES
- Wikipedia - Queue (abstract data type)
- Oracle - Java Queue interface reference
- Python - Deque providing queue operations
- RabbitMQ - AMQP queues concept overview
- AWS - Amazon SQS developer guide
TOP QUESTIONS
What is a Queue in computing?
A queue is a first-in, first-out structure or service used to buffer and order work. It decouples producers and consumers, smoothing load and improving resilience.
Category: Definition
Why use Queues in data pipelines?
Queues absorb spikes, enable backpressure, and isolate failures between stages. They improve reliability and throughput in batch and streaming workflows.
Category: Relevancy
How do Queues differ from Stacks?
Queues are FIFO, serving oldest elements first; stacks are LIFO, serving most recent first. Choice depends on processing semantics.
Category: Comparison
What delivery semantics matter for Queues?
Common semantics are at-most-once, at-least-once, and exactly-once (often via idempotence). Each trades complexity for reliability guarantees.
Category: Requirements
What are common mistakes when using Queues?
Ignoring idempotency, unbounded queue growth, and lack of dead-letter handling cause failures. Missing observability obscures lag and consumer health.
Category: Mistakes
How is Queue performance measured?
Metrics include throughput, latency, queue depth, consumer lag, and redrive rates. SLOs tie these metrics to reliability targets.
Category: Testing
What is a Priority Queue compared to a Queue?
A priority queue dequeues by priority rather than arrival order. It trades FIFO fairness for urgency-based processing.
Category: Comparison
Are Queues suitable for exactly-once processing?
Exactly-once requires careful design with deduplication, idempotency, and transactional semantics. Many systems offer at-least-once by default.
Category: Risks
How do Queues support event-driven architectures?
Queues decouple publishers and consumers, enabling asynchronous command and event handling with retry and fan-out patterns.
Category: Application
Which managed Queue services are popular?
Amazon SQS, Google Pub/Sub (with pull subscriptions), and Azure Service Bus are widely used for reliable messaging.
Category: Overview