Overview
Path:crates/local_backend/
The local backend crate provides:
- Main binary (
convex-local-backend) - HTTP and WebSocket server
- API routing and request handling
- Dashboard UI serving
- Admin endpoints
- Deployment state management
Architecture
Main binary
Entry point
Path:crates/local_backend/src/main.rs
Server initialization
Configuration
LocalConfig
Command-line configuration:Environment variables
Configuration via environment:HTTP server
Axum framework
The server uses Axum for routing:Request handling
Typical request flow:- Request arrives at server
- Middleware processes request (auth, CORS, etc.)
- Router dispatches to appropriate handler
- Handler calls application layer
- Response is serialized and returned
WebSocket sync
Sync protocol
Path:crates/local_backend/src/sync.rs
Handles real-time synchronization:
HTTP actions
HTTP routing
Path:crates/local_backend/src/http_actions.rs
HTTP actions expose functions as HTTP endpoints:
Route mapping
Admin API
Admin endpoints
Path:crates/local_backend/src/admin.rs
Admin operations require authentication:
Authentication
Admin key verification:Dashboard UI
Dashboard serving
Path:crates/local_backend/src/dashboard.rs
Serves the self-hosted dashboard:
Dashboard features
The dashboard provides:- Deployment overview
- Table data browser
- Function logs viewer
- Schema editor
- Settings management
Deployment management
Deployment state
Path:crates/local_backend/src/deployment_state.rs
Tracks deployment configuration:
Push deployment
Path:crates/local_backend/src/deploy_config.rs
Handles code push from CLI:
Middleware
Authentication middleware
CORS middleware
Metrics middleware
Site proxy
Development proxy
Path:crates/local_backend/src/proxy.rs
Proxy to frontend dev server:
Logging and monitoring
Log streaming
Path:crates/local_backend/src/logs.rs
Stream function logs:
Application metrics
Path:crates/local_backend/src/app_metrics.rs
Expose Prometheus metrics:
Error handling
Error responses
Graceful shutdown
Shutdown handling
Testing
Integration tests
Next steps
- Database engine component - Core data layer
- Function runner component - UDF execution
- Sync protocol component - Real-time sync
- Rust backend architecture - Overall architecture