Many i3X servers,
one unified endpoint

Aggregate multiple i3X data sources into a single standards-compliant REST API. Fan out requests concurrently, merge results, and present one seamless interface to i3X Explorer.

i3xag-server
$ i3xag-server --config config.yaml i3xag-server v0.1.0 Upstream 'SCADA' -> http://localhost:8080 Upstream 'ERP' -> http://localhost:8081 Upstream 'Quality' -> http://localhost:8082 Configured 3 upstream(s) i3xag-server listening on http://0.0.0.0:9000 Swagger UI: http://localhost:9000/swagger-ui Press Ctrl+C to stop. $ curl http://localhost:9000/health { "status": "Healthy", "services": { "SCADA": "Available", "ERP": "Available", "Quality": "Available" } }

i3xag-server aggregating three upstream i3X servers — health check showing all services available


Unified aggregation

Multiple i3X servers behind one endpoint. No code changes to your clients.

Concurrent Fan-Out

Every request is dispatched to all upstream servers in parallel. Results are merged and returned as a single response. No serial bottleneck.

Graceful Degradation

If one upstream is down, the aggregator returns partial results from the remaining servers. Failed upstreams are logged and skipped.

Same API Surface

Identical routes to any i3X server. i3X Explorer, dashboards, and client code connect to the aggregator without modification.

Health Monitoring

Built-in /health endpoint checks each upstream and reports Healthy, Degraded, or Unhealthy status with per-service details.

YAML Configuration

Define your port and upstream list in a simple YAML file. Or pass everything via CLI flags for scripted deployments.

Request Diagnostics

Circular buffer of recent requests with timing, status codes, and response previews. Inspect at /_diagnostics/requests.

Multiple i3X servers merging into a single unified graph

Many sources, one graph

Each upstream i3X server contributes its namespaces, object types, objects, relationships, and values. The aggregator merges them into a single unified view.


Three steps

Multiple servers to one endpoint in minutes.

01

configure

List your upstream i3X servers in a YAML file or pass them as CLI arguments. Set the aggregator port.

02

start

Run i3xag-server. It connects to all upstreams, verifies health, and begins listening for requests.

03

connect

Point i3X Explorer or any client to the aggregator. Objects, types, relationships, and values from all upstreams appear as one.

config.yaml
port: 9000
upstreams:
  - name: "SCADA"
    url:  "http://localhost:8080"
  - name: "ERP"
    url:  "http://localhost:8081"
CLI alternative
# No config file needed
i3xag-server \
  --port 9000 \
  --upstream "SCADA=http://localhost:8080" \
  --upstream "ERP=http://localhost:8081"

i3X tools

Part of a growing ecosystem of i3X-compatible software.

Database

i3xdb

Desktop tool and headless server that maps any relational database to an i3X context model. Visual schema explorer, auto-mapping, and a built-in REST API.

Visit i3xdb.com
MTConnect

i3xmt

Connects to MTConnect MQTT brokers and transforms device data into i3X context models. Visual mapping, auto-mapping, live values, and a standards-compliant REST API.

Visit i3xmt.com
Explorer

i3X Explorer

Third-party tool by ACE Technologies for browsing any i3X-compliant API. Explore object hierarchies, inspect properties, and navigate relationships.

Visit i3X Explorer

Get started

Free download. Aggregate your first i3X servers in minutes.