Test microservices the way they actually run

Dokkimi spins up isolated Kubernetes sandboxes, intercepts all inter-service traffic, and runs assertions on real HTTP calls — without modifying your code.

npm install -g dokkimi
Read the docs

Why Dokkimi

Unit tests mock away the interesting parts. Staging environments drift from reality. Dokkimi gives you production-like test environments on demand.

Isolated namespaces

Each test run gets its own Kubernetes namespace with dedicated services and databases. No shared state, no conflicts.

Traffic interception

An interceptor sidecar captures all HTTP traffic between services. Assert on exactly what service A sent to service B.

Mock external APIs

Intercept outbound requests to third-party services (Stripe, Twilio, etc.) and return controlled responses.

Database seeding

Initialize Postgres, MySQL, MongoDB, or Redis with SQL/JS scripts before tests run.

Parallel execution

Run steps in parallel within a test, and run multiple test definitions concurrently.

No code changes

Your services run unmodified. Dokkimi handles all the wiring — sidecars, routing, DNS, and cleanup.

How it works

Define your services and tests in simple YAML. Dokkimi does the rest.

# .dokkimi/checkout-flow/definitions/checkout-test.yaml
name: checkout-flow
items:
  - $ref: ../shared/api-gateway.yaml
  - $ref: ../shared/order-service.yaml
  - $ref: ../shared/postgres-db.yaml
  - type: MOCK
    name: mock-stripe
    mockTarget: api.stripe.com
    mockPath: /v1/charges
    mockResponseStatus: 200
    mockResponseBody:
      id: ch_test_123
      status: succeeded

tests:
  - name: Place order and verify payment
    steps:
      - - name: POST /orders
          action:
            type: httpRequest
            method: POST
            service: api-gateway
            path: /orders
            body:
              item: widget
              quantity: 2
          assertions:
            - target: self
              assertions:
                - type: statusCode
                  operator: eq
                  value: 201
            - target: httpCall
              match:
                origin: order-service
                method: POST
                url: mock-stripe/v1/charges
              assertions:
                - type: request.body
                  path: $.amount
                  operator: eq
                  value: 1998
1
Define

Declare services, databases, and mocks in YAML or JSON. Reference shared fragments with $ref.

2
Run

dokkimi run deploys everything into an isolated K8s namespace with traffic interception.

3
Assert

Assertions run against real HTTP traffic between services. No mocking your own code.

Pricing

Free to run locally. Cloud CI/CD pricing coming soon.

Local

Free
  • Run on your machine with Docker + Kubernetes
  • Unlimited test definitions
  • Unlimited runs
  • Full traffic interception and assertions
  • CLI + AI agent integration
Get started

Stay in the loop

New features, tutorials, and tips every two weeks. No spam.