Skip to content

Launch

The 10x Engine runs in an extensible array of environments including container, edge, CI/CD, and dev environments.

The Java Launcher API provides a simple interface for launching different flavors of the 10x engine from a range of entry points, including web servers, serverless functions, Kubernetes DaemonSets, CI/CD pipelines, and local development setups.

Command Line

The command line launcher provide an easy way to start the run and compile pipelines using launch arguments within dev, test and CI/CD environments.

Launcher code: RunCloud.java.

Install: Win/Nix/OSX/Docker.

Edge

The edge launcher starts a run pipeline using edge (i.e., Graal based) and JIT-edge (i.e., Hotspot based) flavors for edge apps executing as part of k8s daemonsets.

Launcher code: RunEdge.java.

Edge apps: Reporter, Regulator, Optimizer.

Quarkus

The Quarkus launcher executes run pipelines in response to REST requests within Cloud and k8s environments.

Launcher code: Pipeline.java.

Deploy: k8s Chart.

Example app: Storage Streamer.

The Quarkus launcher exposes REST endpoints on port 8080:

Storage Streamer Endpoints

POST /streamer/index

Indexes a file from object storage for efficient querying.

  • Method: POST
  • Content-Type: application/json
  • Request Body Fields:
    • readContainer (string, required): Source container/bucket name
    • readObject (string, required): Source object/file name
    • objectStorageName (string, optional): Object storage provider name
    • writeContainer (string, optional): Target container for index output
  • Response: 200 OK on success

POST /streamer/query

Queries indexed log data from object storage.

  • Method: POST
  • Content-Type: application/json
  • Request Body Fields:
    • name (string, optional): Query name for tracking
    • target (string, optional): Target dataset
    • from (string, optional): Start timestamp for query range
    • to (string, optional): End timestamp for query range
    • search (string, optional): Search query string
    • filters (list of strings, optional): Additional filter conditions
    • objectStorageName (string, optional): Object storage provider name
    • readContainer (string, optional): Container/bucket to query
    • indexContainer (string, optional): Index container location
    • processingTime (string, optional): Processing time limit
    • resultSize (string, optional): Maximum result size limit
  • Response: 200 OK with query results

Health Endpoints

GET /health/live

Kubernetes liveness probe. Returns 200 OK with "UP" if the pod is alive.

GET /health/ready

Kubernetes readiness probe with load-based traffic routing.

  • Response: 200 OK with "READY" when load is below threshold, 503 Service Unavailable with "NOT READY" when at capacity
  • Configuration: tenx.quarkus.readiness.threshold (default: 90%)

GET /health/started

Kubernetes startup probe. Returns 200 OK with "STARTED" when application has completed startup.

Metrics Endpoints

GET /metrics/load

Returns current pipeline executor load metrics.

  • Response: JSON object with metrics:
    {
      "activeTasks": 0,
      "queuedTasks": 0,
      "completedTasks": 0,
      "maxAsync": 10,
      "maxQueued": 100,
      "currentLoad": 0,
      "totalCapacity": 110,
      "loadPercent": 0
    }