Overview

What is Kiwi Distro?

Kiwi Distro is a pre-integrated platform for distributed applications: clients call methods by name, a middleware routes each call to a capable worker, and security, discovery and telemetry are built in.

Distro Current 4 min read Updated

Note

Kiwi Distro is currently in private preview. Interfaces and behaviour described here can change before general availability. Contact Kiwify Labs for access.

Kiwi Distro is a pre-integrated platform for building distributed applications. Building a distributed system usually means assembling an orchestrator, service discovery, security, telemetry and secrets handling before you write any business logic. Kiwi Distro ships all of them already working together, so your team builds services instead of plumbing.

A client calls a method by name, such as billing/charge. The middleware authenticates the caller, checks it is allowed, queues the work, picks a capable worker wherever it runs and returns the result. The worker can be a native service written in .NET, Java, Node.js or Python, a registered script, or an existing REST API exposed through a SideCar with no change to the API itself.

  • Call any capability by name. Callers never need to know where a service runs. Add, remove or scale workers without touching anyone else's configuration.
  • Secure from the first call. OAuth2 client credentials, role-based access, service-to-service authorisation, a secrets store and TLS with a built-in certificate authority are part of the platform.
  • See what is happening. Workers stream structured progress feedback that is stored and queryable.
  • Run it anywhere. Cloud, on-premises and edge, on Windows and Linux, in containers, VMs and bare metal.

The model#

Term Meaning
Service A logical capability. A method is addressed as service/method.
Method An operation a service offers, with named parameters.
Worker A process that registers for one service and executes its methods.
Client A caller. It authenticates, invokes methods and administers the middleware.
Middleware The server in the middle. It authenticates, authorises, queues work, picks a worker and returns the result.

Services never need to know where other services run. A client names service/method, and the middleware finds a capable worker. You can add, remove or scale workers without changing any other service's configuration.

Three ways to execute work#

  1. Native worker. Write a worker with the .NET, Java, Node.js or Python SDK. This is the deepest integration, with typed parameters, progress feedback and settings delivered from the platform. See Write a worker.
  2. Scripts. Register scripts (AutoIT, Playwright, Python, Node, PowerShell, batch, shell, AutoHotkey) and run them on suitable workers without building a full worker. See Register and run scripts.
  3. SideCar. A co-located companion process that turns an existing REST API into Kiwi methods, with no changes to the API. See Expose a REST API with the SideCar.

What is built in#

  • Routing and discovery driven by the middleware, with target selection of any worker, all workers, or one named worker, and tag filters.
  • Security: OAuth2 client credentials, JWT access tokens, client-side RBAC, service-to-service authorisation, a secrets store, and TLS with a built-in certificate authority through Kiwi Vault PKI. See Control access.
  • Telemetry: structured progress feedback from workers, stored and queryable.
  • Deployment control: blue/green and canary routing per service.
  • Synchronous and asynchronous calls: wait for a result, or submit and collect it later or receive a callback.
  • Clustering: multiple middleware instances behind a load balancer. See Run a local cluster.
  • Tooling: the kiwi distro CLI, a desktop administration app, and client SDKs for .NET, Java, Node.js and Python.

Where it runs#

Cloud, on-premises and edge, on Windows and Linux, in containers, VMs and bare metal.

Used by other Kiwify Labs products#

Kiwi Flow uses Kiwi Distro to route single workflow activities, such as running a registered script on a particular machine, to remote workers. See Run scripts and remote work with Kiwi Distro in the Kiwi Flow documentation.