Installation

Table of contents

  1. Installation
    1. TypeScript / Node.js
    2. Python
      1. Optional extras
    3. Go

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")
}