Why use kontinue?
The durable execution model makes it easy to write reliable workflows. Your code looks like normal Go — sequential logic, loops, conditionals — but automatically survives failures, restarts, and deployments. kontinue was created to fill this niche for environments that are already all-in on Kubernetes.
kontinue provides a simple model for durable execution without requiring additional infrastructure like databases or message queues. State is stored directly in Kubernetes using Custom Resources, which means:
- No additional dependencies — if you have Kubernetes, you have everything you need
- Familiar operational model — use kubectl, standard RBAC, existing monitoring
- Native integration — leverage Kubernetes primitives like Jobs, Secrets, and ConfigMaps
This is particularly important for building tier-0 automation in infrastructure lifecycle — the foundational workflows that manage your platform itself. These workflows need to be reliable even when other systems are unavailable.
Compared to Argo Workflows
Argo Workflows is Kubernetes-native and provides excellent tooling (UI, CLI, metrics). kontinue aims to provide a similar experience, but by writing workflows as native Go code instead of YAML configuration.
Argo is excellent when:
- Workflows are relatively simple or linear
- Workflows are managed by many teams with varying expertise
- You prefer configuration-as-code (YAML/JSON)
- You need a mature ecosystem with extensive integrations
kontinue is designed for:
- Complex platform automation with dynamic branching
- Workflows that are tedious to express in YAML
- Teams that prefer writing Go over configuration
- Cases where the workflow logic itself is the product
The durable execution model is significantly more flexible than a predefined workflow DAG. With kontinue, you write normal code:
func DeployEnvironment(ktx *kontinue.ExecutionContext, args *DeployArgs) error {
// Dynamic logic based on runtime conditions
clusters, err := kontinue.Store(ktx, func() ([]string, error) {
return discoverClusters(args.Region)
})
if err != nil {
return err
}
// Fan out dynamically based on discovered clusters
for _, cluster := range clusters {
_, err := kontinue.Execute[DeployResult](ktx, "deploy-to-cluster", &ClusterArgs{Name: cluster}, &kontinue.ExecuteOptions{})
if err != nil {
return err
}
}
return nil
}
This would require much more complex logic to express in YAML.
Compared to Temporal, Restate, and Inngest
Temporal, Restate, and Inngest operate on the same durable execution model as kontinue. They’re excellent choices with mature ecosystems and broad language support.
These tools excel when:
- You need support for multiple languages (Python, TypeScript, Java, etc.)
- You’re running thousands of workflows per second
- You want a managed cloud offering
- You’re not primarily a Kubernetes shop
kontinue is focused on:
- Tight Kubernetes integration — Jobs, CRDs, RBAC, namespaces are first-class
- Zero external dependencies — no databases, no message brokers
- Kubernetes-native operations — familiar tools and patterns
- Infrastructure automation — workflows that manage Kubernetes itself
If you’re building a SaaS product with high-throughput workflow needs, Temporal or Restate may be better suited. If you’re building platform automation for a Kubernetes-native environment, kontinue provides a simpler operational model.
When to use kontinue
kontinue is a good fit when:
- You’re already running on Kubernetes
- You want durable execution without additional infrastructure
- Your workflows are written and maintained by platform engineers
- You need to orchestrate Kubernetes resources (Jobs, Deployments, etc.)
- You’re building infrastructure lifecycle automation
kontinue may not be the best fit when:
- You need support for languages other than Go
- You require extremely high throughput (thousands of workflows/second)
- You prefer YAML-based workflow definitions
- You need a managed/hosted solution
Next Steps
- Getting Started - Try kontinue in 5 minutes
- Functions - Learn how to write durable functions
- Architecture - Understand how kontinue works