Synopsis
Description
Starts a combined server, controller, and worker in a single process for simplified local development and testing. By default, all three components (Arrow Flight, JSON Lines, and Admin API) are started along with an embedded worker. Components can be selectively enabled using flags. If no flags (--flight-server, --jsonl-server, --admin-server) are specified, ALL THREE are enabled by default. When any flag is specified, only the explicitly enabled components will start.
The worker always runs with node ID "worker". The process runs continuously until terminated (Ctrl+C or kill signal).
Options
Enable Arrow Flight RPC Server. This provides a high-performance binary protocol for querying data (default port 1602). Uses Apache Arrow Flight for efficient data transfer.Can also be set via the
FLIGHT_SERVER environment variable.Enable JSON Lines Server. This provides a simple HTTP interface for querying data (default port 1603). Accepts SQL queries via POST requests and returns results in JSON Lines format.Can also be set via the
JSONL_SERVER environment variable.Enable Admin API Server. This provides management and administrative endpoints (default port 1610) for monitoring and controlling the amp system.Can also be set via the
ADMIN_SERVER environment variable.Service Ports
| Service | Port | Protocol | Purpose | |---------|------|----------|---------|| | Arrow Flight | 1602 | gRPC | High-performance queries | | JSON Lines | 1603 | HTTP | Simple query interface | | Admin API | 1610 | HTTP | Management operations |Initialization Sequence
- Load configuration
- Connect to metadata database
- Create datastore (object storage)
- Start controller (Admin API)
- Start server (Flight + JSONL)
- Spawn embedded worker with node ID “worker”
- Worker registers and begins listening for jobs
Configuration
Solo mode supports an optional--config (or AMP_CONFIG) file. If no config is provided, it auto-discovers <amp_dir>/config.toml and falls back to zero-config defaults.
Example Configuration
Examples
Start with All Services (Default)
Start with Only Flight Queries
Start with Flight and Admin API
Start with Only JSONL
Using Environment Variables
With Custom Configuration
When to Use Solo Mode
Use Solo Mode For
Use Solo Mode For
- Local development with fast iteration
- Testing the full extract-query pipeline
- CI/CD pipelines
- Learning Amp’s capabilities
- Rapid prototyping
Do NOT Use Solo Mode For
Do NOT Use Solo Mode For
- Production deployments
- Resource isolation (queries vs extraction)
- Horizontal scaling of workers
- High availability requirements
- Independent component failure handling
Limitations
For production deployments, use distributed mode with separateserver, controller, and worker processes.
Development Workflow
Quick Start
Verifying Services
Zero-Config Mode
Solo mode can run without a config file for rapid testing:- Auto-discovered configuration from
.amp/config.toml - Default ports (1602, 1603, 1610)
- In-memory or local storage
- Embedded PostgreSQL (if available)
Migration from Solo to Production
When moving from solo mode to production:- Independent scaling of each component
- Fault isolation between services
- Horizontal scaling of workers
- Better resource management
Exit Codes
Solo mode shut down gracefully
Error occurred during solo mode operation or configuration is invalid
See Also
- ampd overview - Command overview and global options
- ampd server - Production query server mode
- ampd controller - Production controller mode
- ampd worker - Production worker mode