v_queue 0.3.1

simple file based queue
Documentation
# Glossary

Definitions of terms used in V-Queue documentation.

## A

### API (Application Programming Interface)
The HTTP REST interface provided by v-queue-server for interacting with queues.

### Async/Await
Asynchronous programming pattern used in the server implementation with Tokio runtime.

### Authentication
Security mechanism requiring username and password (HTTP Basic Auth) to access API endpoints.

### Axum
Rust web framework used to implement the HTTP server.

## B

### Batch Size
Number of messages returned in a single consume request. Configured via `max_messages` parameter (default is 1). The `default_batch_size` config setting is not currently used.

### Base Path
Root directory where queue data files are stored. Configured via `data_directory` setting.

### Binary Message
Message with type "object" containing raw binary data, not valid UTF-8 text.

## C

### Commit
Operation to save consumer's current read position, marking messages as processed.

### Consumer
Named entity that reads messages from a queue. Each consumer maintains independent read position.

### Consumer Offset
Current read position (byte offset) of a consumer within a queue partition.

### CRC32 (Cyclic Redundancy Check)
Checksum algorithm used to verify data integrity of messages.

## D

### Data Directory
File system directory where all queue data is stored. Default: `./queues`

### Durability
Guarantee that written messages are persisted to disk and survive crashes.

## E

### Endpoint
HTTP API URL path for specific operation (e.g., `/api/v1/queues`).

## F

### fsync
System call to flush file writes to physical storage, ensuring durability.

### File Lock
OS-level lock ensuring only one writer can access queue at a time.

## H

### Header
25-byte structure at the start of each message containing metadata (offset, length, CRC, etc).

### Health Check
API endpoint (`/health`) to verify server is running.

### HTTP Basic Authentication
Authentication method where credentials are sent in base64-encoded format in the `Authorization` header.

## I

### Individual
Semantic objects format used in some message processing (specific to semantic-machines ecosystem).

## J

### JNI (Java Native Interface)
Technology allowing Java code to call Rust library functions.

### JSON (JavaScript Object Notation)
Text format used for API requests and responses.

## L

### Long Polling
Technique where consume request waits (up to timeout) for new messages before returning.

### Lock File
File (`{queue}_queue.lock`) used to prevent concurrent write access to queue.

## M

### Message
Single data item stored in queue, consisting of header and body.

### Message Type
Classification of message content: "string" (UTF-8 text) or "object" (binary/structured data).

### Metadata File
Files containing queue or consumer state information (`_info_queue`, `_info_push`, etc).

## O

### Offset
Byte position within a queue partition. Used to track read/write positions.

## P

### Partition
Directory containing actual queue data for a specific time period. Named `{queue}-{id}`.

### Partition ID
Numeric identifier for a partition, increments when new partition is created.

### Producer
Application or service that writes messages to a queue.

### Push
Operation to write a new message to a queue.

## Q

### Queue
Named message storage container. Messages written by producers, read by consumers.

### Queue Manager
Server component that manages multiple queues and their consumers.

## R

### REST (Representational State Transfer)
Architectural style for HTTP APIs used by v-queue-server.

### Right Edge
Current write position (byte offset) in active partition.

## S

### Sequential I/O
Reading or writing data in order from beginning to end, optimized for disk performance.

### String Message
Message with type "string" containing UTF-8 text.

## T

### Timeout
Maximum time (in milliseconds) a consume request will wait for messages via `timeout_ms` parameter. 0 = return immediately.

### Tokio
Asynchronous runtime for Rust used by v-queue-server.

### TOML (Tom's Obvious, Minimal Language)
Configuration file format used by v-queue-server.

## Terminology Comparisons

### V-Queue vs Kafka

| V-Queue Term | Kafka Equivalent |
|--------------|------------------|
| Queue | Topic |
| Consumer | Consumer |
| Partition | Partition |
| Offset | Offset |
| Commit | Commit |
| Message | Record |

### V-Queue vs RabbitMQ

| V-Queue Term | RabbitMQ Equivalent |
|--------------|---------------------|
| Queue | Queue |
| Consumer | Consumer |
| Message | Message |
| Push | Publish |
| Commit | Acknowledge (ACK) |

### V-Queue vs Redis Streams

| V-Queue Term | Redis Streams Equivalent |
|--------------|--------------------------|
| Queue | Stream |
| Consumer | Consumer |
| Offset | ID |
| Commit | XACK |
| Message | Entry |

## File Extensions

### `.lock`
Lock file preventing concurrent writers.

### `_info_queue`
Queue metadata file (current partition ID).

### `_info_push`
Write metadata file (write position, message count).

### `_info_pop_{consumer}`
Consumer metadata file (read position).

### `_queue`
Actual message data file.

## Common Abbreviations

- **API** - Application Programming Interface
- **CRC** - Cyclic Redundancy Check
- **HTTP** - Hypertext Transfer Protocol
- **I/O** - Input/Output
- **JNI** - Java Native Interface
- **JSON** - JavaScript Object Notation
- **REST** - Representational State Transfer
- **SSD** - Solid State Drive
- **HDD** - Hard Disk Drive
- **TOML** - Tom's Obvious, Minimal Language
- **URL** - Uniform Resource Locator
- **UTF-8** - Unicode Transformation Format 8-bit

## Message Format Terms

### Magic Marker
Fixed value (0xEEEFFEEE) in message header used for validation.

### Count Pushed
Sequential counter of messages written to current partition.

### Message Length
Size of message body in bytes (not including header).

### Start Position
Absolute byte position where message begins in partition.

## Performance Terms

### Throughput
Number of messages or bytes processed per unit time (msg/sec or MB/sec).

### Latency
Time delay between operation start and completion.

### Sequential Access
Reading/writing data in order, achieving high performance on disk.

### Random Access
Reading/writing data in arbitrary order, typically slower than sequential.

## Next Steps

- [Overview]01-overview.md
- [Architecture]02-architecture.md
- [API Reference]05-api-reference.md