Documentation

Resolute

Version Go License

Orchestration as Code - Build fault-tolerant workflows with Go.

Resolute is a workflow framework built on Temporal that lets you define complex, long-running workflows using familiar Go code. It provides a developer-friendly abstraction layer while maintaining Temporal’s durability guarantees.

Why Resolute?

  • Type-Safe Workflows: Leverage Go generics for compile-time correctness
  • Fluent API: Build workflows with an intuitive, chainable builder pattern
  • Built-in Patterns: Compensation (Saga), pagination, rate limiting out of the box
  • Provider Ecosystem: Pre-built integrations for Jira, Confluence, Ollama, Qdrant, and more
  • Testing Made Easy: Mock activities and test flows without Temporal infrastructure

Quick Example

package main

import "github.com/resolute/resolute/core"

func main() {
    // Define a simple data sync workflow
    flow := core.NewFlow("data-sync").
        TriggeredBy(core.Schedule("0 2 * * *")).  // Run daily at 2 AM
        Then(jira.FetchIssues(jira.Input{
            Project: "PLATFORM",
            Since:   core.CursorFor("jira"),      // Incremental sync
        })).
        Then(transform.ChunkDocuments(transform.Input{
            DocumentsRef: core.OutputRef("jira_issues"),
        })).
        Then(ollama.BatchEmbed(ollama.Input{
            DocumentsRef: core.OutputRef("chunks"),
        })).
        Then(qdrant.Upsert(qdrant.Input{
            Collection:   "knowledge-base",
            EmbeddingsRef: core.OutputRef("embeddings"),
        })).
        Build()

    // Run the worker
    core.NewWorker().
        WithFlow(flow).
        WithProviders(jira.Provider, transform.Provider, ollama.Provider, qdrant.Provider).
        Run()
}

Getting Started

Ready to build your first workflow?

  1. Prerequisites - Set up your environment
  2. Installation - Install Resolute
  3. Quickstart - Build your first flow in 5 minutes