Platform

Full Platform

Didact is a prebuilt platform, not just a library. No more needless application wiring for worker host apps or UIs. An orchestrator should provide this ahead of time.

Self Hosted

Designed to be self-hosted from day one. You take Didact's prebuilt components and host them on your own infrastructure. Your Windows servers, your Linux VMs, your cloud tenants, not mine.

Secure and Private

Since Didact is self-hosted, you own all the data and network security. License keys execute periodic checks for the paid commercial perks only, all else stays in your infrastructure. No security questionnaire needed.

Class Library Approach

Perhaps the defining characteristic and differentiator in the entire Didact plaform: background jobs - called Flows - are defined in dedicated .NET class libraries. Termed flow libraries, they are the perfect components to define and centralize background jobs into, yet until Didact no one has bothered to utilize them to their fullest potential.

Runtime Plugins

Flow libraries are registered and consumed in Didact Engine by loading them as isolated runtime plugins. Each flow library has its own corresponding plugin, complete with an isolated AssemblyLoadContext and an independent dependency injection container. You reap the benefits of job isolation without incurring the cost of needless complexity or unnecessary host apps.

Prebuilt Execution Engine

Didact provides a prebuilt execution engine - an actual app, not a NuGet package - that handles the complexity of running and managing background jobs and workflows. Built purely in C#, it yields all the modern advantages of a .NET host app like full async support, multithreadedness and parallelism, and a dedicated thread pool.

REST API Included

Didact Engine exposes a REST API for managing flows, deployments, and executions. No need to wire up a separate API server.

Single or Distributed

Because it's a stateless, 12-factor app, run Didact Engine as a single node or horizontally scale it with automatic coordination and distributed locking via the SQL database. No extra configuration needed, perks of a stateless design and database coordination.

Sleek Web Dashboard

Didact UI is a prebuilt, standalone web dashboard application. Beautiful, sleek modern dashboard to satisfy all your monitoring requirements, from granular execution details to environment report summaries.

SQL Powered

Powered by flagship relational databases like SQL Server and PostgreSQL for convenient metadata persistent storage and queue orchestration. And yes, databases are excellent queues - the internet mantra is quite wrong.

Rich Metadata

The Didact data model has a highly-relational design, so it collects and reports on extensive metadata - as a proper job orchestrator should. And if you're an analytics person, you have a strong database design to extract data from.

Background Jobs and Workflows

Flow Libraries

Background jobs and workflows are defined inside of dedicated class libraries, called flow libraries. You can have any number of flow libraries; organize them by environment, by team, by app, whatever you fancy.

Library Isolation

As mentioned above, each flow library is isolated and self-contained with its own corresponding plugin and dependency injection container in Didact Engine. This makes multi-library maintenance convenient for you. For example, if a dependency changes for a flow library, the only potentially-affected flows are the ones inside of that flow library.

.NET Templates

Flow libraries are extremely easy to create. Didact offers a .NET template that, with a simple terminal command, creates a new flow library project with a preconfigured .csproj optimized for plugin usage.

Exclusively .NET

Didact is designed from the ground up for C# developers only — not a Java or Python platform with a .NET SDK bolted on. Rather than be a polygot orchestrator, Didact aims to be the single best .NET offering in the ecosystem.

IFlow Interface

Background jobs in Didact are called flows. Flows are defined by implementing the IFlow interface on a C# class. The interface is very lean and requires you to implement only two methods: ConfigureAsync for flow registration and ExecuteAsync for the actual job logic.

Fluent Configuration

A flow's ConfigureAsync method offers a method-injected context object that exposes a fluent API to set metadata and orchestration behavior. Instead of restrictive attribute brackets on your flow classes, you have the convenience and dynamic nature of a fluent API to configure your flow in any way.

First-Class Scheduling

Define cron, interval, and one-time schedules directly in code with a developer-friendly API.

Durable Execution

Built around durable execution principles with retries, resumability, and persistent execution history.

Intelligent Retries

Configure fixed delay and exponential backoff strategies to keep critical workloads moving.

Dynamic Steps

Break workflows into observable execution steps for better visibility, debugging, and recovery.

Flow Versioning

Safely evolve your automation over time with deployment-aware flow and library versioning.

Subflows

Compose larger automations from smaller building blocks with support for parent and child flow orchestration.

Durable Timers

Suspend and resume long-running workflows without keeping processes alive or wasting resources.

Deployment and Infrastructure

Developer-Friendly CLI

Install, configure, deploy, and manage the Didact platform entirely from the terminal with an official CLI. Install the CLI with one simple install script, or download the binary and add to PATH. The CLI is separate from the other platform apps to minimize the memory footprint.

Portable Binaries

Install and run Didact Engine, Didact UI, and Didact CLI with lightweight, self-contained, single-file, crossplatform binaries optimized for simple deployments. One install script for the CLI, one CLI command for the engine and UI installs.

Decoupled UI

Since Didact UI and Didact Engine are separate binaries, configure your infrastructure however you want. Run them together on the same server or minimize the UI memory footprint and serve it on a smaller host or container.

Minimal Infrastructure

A CLI, two binaries, and a SQL database: that's all you need to run Didact. No message brokers, no caches, no complex service dependencies. Didact was architected to be self-hosted from day one, so minimal infrastructure was non-negotiable.

Always On

Didact Engine stays up and running while you deploy job definitions. No needless worker service interruptions or unnecessary downtime for some miniscule job update.

Long-Lived Infrastructure

Job defintions and orchestration infrastructure are ACTUALLY decoupled like they should've been eons ago. Didact is designed to run in long-lived environments, ensuring stability and reliability for extended periods.

Simple CI/CD

Since Didact is long-lived and always-on, CI/CD pipelines are dead simple. No complex orchestration or deployment strategies required, just deploy your flow libraries with one CLI command.

Storage Wrappers

The deploy CLI commands offer convenient wrappers for your flow library deployment sources. Whether you deploy to the local filesystem, an S3 bucket, a GitHub Artifact, or wherever else, the CLI will simplify the would-be-complicated-workflow for you in one easy command.

Multitenancy

Didact's data model supports multitenancy for metadata, queues, and all orchestration using Didact Environments - logical boundaries built into the database layer. Use one set of infrastructure while maintaining separation between development, staging, and production and save on your infrastructure bill.

Config Driven

Setup and modify the behavior of the platform apps with a central configuration file. Config file supports smart syntax, secrets, and environment variables.

Deployment Profiles

For complex, predefined deployment targets - across environments, across deployment sources, using dynamic secrets or variables, whatever - Didact offers an optional deployment config file at the flow library level to wire up infinite deployment paths.

Stay informed

Stay informed about the latest updates, follow the founder's journey, and receive discounted pricing for Didact's commercial offerings.