Open-source proof of concept for mapping a Solace PubSub+ event mesh: brokers, publishers, subscribers, topic provenance, ownership, and live throughput.
The first demo profile models a public automotive event mesh with 10 brokers, 15 publishers, and 5 subscribers. It connects to real brokers through read-only SEMP v2 when configured, and falls back to a built-in sample topology for offline demos.
npm install
npm run devOpen the web app at http://localhost:5173. The API runs on http://localhost:8080.
docker compose up --buildServices:
- Web UI: http://localhost:3000
- API: http://localhost:8080
- Neo4j Browser: http://localhost:7474
The .env file is optional. Create one from .env.example when you want to
override ports, Neo4j settings, polling interval, or production broker
credentials.
To validate real SEMP and AMQP behavior locally, run five PubSub+ Standard brokers with publisher/subscriber traffic:
docker compose -f docker-compose.yml -f docker-compose.live-test.yml up --build
npm run test:live-brokersThe live fixture config is config/live-docker.yaml. It creates five local
brokers, five AMQP publisher clients, five AMQP subscriber clients, queues, and
subscriptions, then verifies the API collector reports live mode with
non-zero publisher, broker, and subscriber rates.
Stop the fixture with:
docker compose -f docker-compose.yml -f docker-compose.live-test.yml downUse Settings in the top-right of the app for guided setup:
- Broker connectivity: SEMP management URL for discovery, AMQP endpoint for application traffic, VPN, physical location, basic credentials, or SEMP API key.
- Event Portal metadata source: API base URL, token environment variable, application domain ID, environment ID, and sync mode.
- AI mapping helper: optional LiteLLM proxy URL, model, API key environment variable, and temperature for metadata mapping suggestions.
- Metadata mapping: publishers, subscribers, provenance, owners, cost centers, client matchers, queue matchers, and topic mappings.
- Discovered runtime inventory: broker health, queues, topic patterns, subscriptions, and links collected from broker polling.
- YAML Config: sectioned edits for overview, brokers, Event Portal, AI helper, ownership, applications, or the full active scenario.
Broker, Event Portal, and LiteLLM credentials can be supplied as environment variable references for production deployments.
The collector uses only read-only SEMP GET requests. It polls every 3 seconds by default and falls back to the sample topology if no broker can be reached.
The AI helper calls a LiteLLM-compatible /chat/completions endpoint from the
API process. It returns draft mapping suggestions only; it does not mutate the
scenario automatically.
apps/api: Express API, SEMP collector, Neo4j writer, SSE live stream.apps/web: React topology UI.packages/shared: Shared TypeScript types and helpers.config: Single multi-scenario topology YAML.
Apache-2.0.