Getting Started
Quickstart
Andera is a Task Orchestration Platform (TOP) designed for simplicity, performance, and flexibility, that enables you to set up endpoints for your business tasks in just a few minutes. The platform comprises three repositories:
3 packages to manage Workers and Load Balancer
Base Worker
A package you can duplicate to start building your Workers very quickly, simply by adding your files for your functions and services. Deploy your functions and services in minutes, call them through REST, or expose them to AI agents with MCP!
Getting StartedGithubLoad Balancer
A package that includes all Load Balancer logic, which you can optionally add in front of your Workers. Load Balancer also adds new features: persistent queue, monitoring dashboard, a single MCP endpoint for all your Workers, etc.
Getting StartedGithubWorker Core
A package that integrates all the logic of Workers, apart from the business logic you add with your functions and services. You don't need to do anything with this one, this one is a dependency of the Base Worker.
GithubPhilosophy
- Performance First: Both the (optional) Load Balancer and Workers are optimized for high throughput and low latency.
- Simplicity: Easy to deploy on dedicated servers, VMs, or in the cloud. No complex setup required.
- Designed for Developers: The platform has been designed to generate maximum value as quickly as possible.
- Tech Agnostic: Workers can execute any business logic, from AI agents to custom scripts.
- Open Source: Andera Community Edition is open-source, free, forever.
Core Features
Andera provides a rich set of features out of the box to help you build, monitor, and scale your business logic:
- Unified API Endpoints: Standardized
/task,/health,/logs,/on,/offendpoints for Workers. - OpenAPI & Swagger Documentation: Automatic, interactive API documentation available at
/docsand/openapi(if enabled; these routes are unauthenticated, so keep them disabled in production). - Real-Time Monitoring: Built-in dashboard (via the Load Balancer) for monitoring Workers, task queues, and logs.
- Slot Management: Parallel task execution with configurable slots per Worker.
- Task Queuing & Prioritization: Persistent queues and priority management (via BullMQ and the Load Balancer).
- Dynamic Discovery: Auto-discovery of functions, services, helpers, and tags in each Worker.
- Tags & Metadata: Expose custom runtime metadata for monitoring and filtering.
- Authentication & Security: Secure endpoints with API keys and recommended best practices for production.
- Extensibility: Easily add your own business logic, services, and helpers.
- MCP (optional): Expose selected functions to AI agents as MCP tools, from a Worker or through the Load Balancer.
These features are available by default and can be extended or customized to fit your needs.
How It Works
- Task Submission: Clients send tasks to a Worker or to an optional Load Balancer via the
/taskendpoint, specifying the group, function, contract version, and optional priority. - Task Routing: If the Load Balancer is used, it finds available Workers matching the group and contract, and routes tasks based on priority and availability. The Load Balancer and its Workers share the same
LB_AUTH_KEY. - Task Execution: Workers execute the requested function, possibly using internal services (e.g., Chrome, Llama.cpp) and helpers.
- Result Delivery: Results can be returned synchronously, via streaming, or through a webhook, depending on the function and request.
Task Lifecycle Diagrams
Below are two diagrams showing the task lifecycle for both direct and Load Balancer submission scenarios. Each diagram uses two alt blocks: one for Sync/Stream mode, one for Webhook mode. The Webhook Endpoint is an external service or URL provided by the user, not an Andera component. A direct Worker call waits for execution and webhook delivery before acknowledging completion. If delivery fails after the function ran, the Worker responds with HTTP 502 and the code WEBHOOK_FAILED instead of reporting a function failure, so the caller knows not to run it again. The Load Balancer acknowledges webhook submission immediately; if the task then fails, it posts a failure notice to the webhook (see Load Balancer usage). It never retries a task that ended in WEBHOOK_FAILED or a Worker 4xx rejection; for synchronous calls, it returns the Worker's status and message. The function result is sent only to the webhook.
A. Direct Call
B. Via Load Balancer
Example Use Cases
- Screenshot Worker: Launches Chromium with Playwright, manages a pool of browser contexts, and provides screenshot functionality.
- Translation Worker: Runs translation models and post-processes text with style and tone.
- AI Agent Worker: Implements custom AI agents for specific missions.
- ...