Installation
Table of contents
TypeScript / Node.js
Requirements: Node.js ≥ 22, TypeScript ≥ 5.0
npm install @slck/mediator
Import the core types:
import {
RuntimeMediator,
RequestBase,
NotificationBase,
ConsoleLogger,
InMemoryMetrics,
InMemoryTracer,
} from '@slck/mediator';
Verify the installation:
import { RuntimeMediator, ConsoleLogger, InMemoryMetrics, InMemoryTracer } from '@slck/mediator';
const logger = new ConsoleLogger();
const metrics = new InMemoryMetrics();
const tracer = new InMemoryTracer('app', logger, metrics);
const m = new RuntimeMediator({ logger, metrics, tracer });
console.log('Mediator ready');
Python
Requirements: Python ≥ 3.11
pip install slck-mediator
Optional extras
| Extra | Contents |
|---|---|
otel | OpenTelemetry OTLP exporter adapters |
sql | SQLAlchemy + aiosqlite adapters for outbox, inbox, and saga |
mongo | Motor (async MongoDB) adapters |
all | All optional extras |
dev | Test dependencies (pytest, pytest-asyncio) |
pip install "slck-mediator[otel,sql]"
pip install "slck-mediator[all]"
Import the core types:
from mediator import (
Mediator,
Request,
Notification,
StreamRequest,
ConsoleLogger,
InMemoryMetrics,
InMemoryTracer,
)
Verify the installation:
from mediator import Mediator, ConsoleLogger
m = Mediator(logger=ConsoleLogger())
print("Mediator ready")
Go
Requirements: Go ≥ 1.21
go get github.com/chandru415/slck-mediator/go/mediator@latest
The module path is github.com/chandru415/slck-mediator/go/mediator. Use this exact path in both go get and your import statements.
Import the framework package:
import framework "github.com/chandru415/slck-mediator/go/mediator"
Verify the installation:
package main
import (
"fmt"
framework "github.com/chandru415/slck-mediator/go/mediator"
)
func main() {
m := framework.NewMediator(framework.Config{
Logger: framework.ConsoleLogger{},
})
_ = m
fmt.Println("Mediator ready")
}