Skip to content

Cookbook Deploy Demo

Andrew MacGaffey edited this page Aug 16, 2026 · 5 revisions

Deployment Cookbook: Demo

The fastest way to see Elastic MDS running: one image with the entire system inside, plus a simulator to feed it. This greatly simplified setup could run on a laptop or a single lab machine - it is built to get you to a working result quickly, not to lay out a production deployment.

Audience: anyone evaluating Elastic MDS. Start here to see the platform working, then move to Static MDS when you are ready for a real deployment.

This is the Consolidated topology in Architecture: Advanced - read that for the full picture; install here first and learn the details later.


The two images, two ways to run them

Method You launch it with Ideal for
Conventional the host ./run launcher running natively without Docker
Docker docker compose up the quickest way to get going, on a laptop or a single lab machine

Images you need

Image Role Release
mf-mds-consolidated A complete market-data server in one image: session, SQL, pub/sub, push/refresh, orchestration, entitlements, config storage, and the ETA/MAMA adapters deploy-mf-mds-consolidated
mf-eta-simulator Synthetic ETA data source that replays recorded content, so the system has something to serve without a live feed deploy-mf-eta-simulator

See the Image Catalog for what each image contains.


Conventional Demo

  1. From each release above, download the installation-package zip and unpack it.
  2. Set JAVA_HOME and start each with ./run, one per terminal (or backgrounded).

Each service looks for the gateway at mf-api-gateway:9090 by default. Point it at your gateway host whatever way suits you - set METAFLUENT_API_GATEWAY_HOST in the launch environment, or map the name in your own name resolution. On a single machine, both are just as easy.

Point mf-mds-consolidated at its ETA server. The ETA/MDS adapter's manager.etaServerHost defaults to localhost on port 14002 - since the simulator runs on the same machine in this demo, there is nothing to set.


Docker Demo

Docker Compose brings both up on a single machine with one command.

Save this as docker-compose.yml and run METAFLUENT_HOST_UID=$(id -u) docker compose up -d:

services:

  mf-mds-consolidated:
    image: ghcr.io/metafluent/mf-mds-consolidated-cfg-stable:milestone
    container_name: mf-mds-consolidated
    network_mode: host
    environment:
      METAFLUENT_HOST_UID: "${METAFLUENT_HOST_UID}"
    volumes:
      - ./logs:/app/logs
      - ./data:/app/data

  mf-eta-simulator:
    image: ghcr.io/metafluent/mf-eta-simulator-cfg-stable:milestone
    container_name: mf-eta-simulator
    network_mode: host
    environment:
      METAFLUENT_HOST_UID: "${METAFLUENT_HOST_UID}"
    volumes:
      - ./logs:/app/logs
      - ./data:/app/data

METAFLUENT_HOST_UID gives the in-container user your host UID, so the bind-mounted ./logs and ./data stay writable.


Where to go next

Clone this wiki locally