Invincible integrations

Temporal Land is an open-source ecosystem of consistent and production-ready workflows and activities for Temporal. This lets developers benefit consistent Integrations as a Service for building reliable and scalable Cloud Platforms and Data Planes.

Use cases

Integrations as a Service

Reliable Cloud Platform

Consistent Data Plane

Features

Built for Temporal

With Temporal, developers can run fault-tolerant applications out of the box at any scale. It's the application state management platform most organizations need.

Production-ready integrations

Integrations allow to interact with a third-party service by exposing high-level, opiniated, and production-ready Temporal workflows and activities.

Rock-solid specifications

Specifications bring strong consistency and a great developer experience by providing the same behavior and APIs across integrations of a same kind.

Large ecosystem

By designing integrations on top of specifications, we can expand our ecosystem quickly and efficiently. Existing specifications are only the beginning!

Consistent event's context

Every integrations' input accepts a common Context, which can then be used by the integration workflows and activities. It is a dictionary of extra information that provides useful context about an event.

Lifecycle's policies

Workflow and activity lifecycle Policies for an integration are set when registering it in the Temporal worker. They can be overridden by the clients when executing a workflow when allowed by the integration to do so.

Temporal Land in a Gist

Once registered in a Temporal worker, developers can consume Integrations as a Service from any applications such as Go, Node.js, Python, Java, or PHP.

A consistent Context across all integrations can be set to provide useful context about an event. The integration will automatically apply it.

If allowed by the integration when registered, a client can override workflows and activities Policies to have full control over the event's lifecycle.

In this example, the MailChimp integration (registered as mailchimp) leverages the analytics specification, which is also used by other integrations such as Segment.

import (
  "go.temporal.land/specifications/analytics"
  "go.temporal.land/toolkit/event"
  "go.temporal.land/toolkit/lifecycle"
)

client.ExecuteWorkflow(ctx, opts, "mailchimp.Identify", analytics.InputIdentify{
  Context: event.Context{
    IP: net.ParseIP("192.168.1.1"),
  },
  Policies: &analytics.Policies{
    Request: lifecycle.ActivityPolicy{
      SingleAttemptTimeout: 1 * time.Second,
      RetryPolicy: &lifecycle.RetryPolicy{
        BackoffCoefficient: 2,
        MaximumAttempts:    10,
      },
    },
  },
  Identify: analytics.Identify{
    UserID: "f373b459-0959-4217-a3a6-4d4bf4304682",
    Traits: map[string]any{
      "first_name": "Elliot",
      "last_name":  "Anderson",
      "email":      "elliot.anderson@evil.corp",
    },
  },
})

Supercharge your SQL workflow

$ tsql migrations rollback --integration warehouse \
  --version 20220522135835

2 migrations to roll back for warehouse:
- 20220522140548.fix_userid_pk.down.sql (applied)
- 20220522135835.init.down.sql (applied)

Temporal will roll back the migrations as shown above.
Do you confirm? Only 'yes' will be accepted to confirm.
> yes

Executing migrations:

-> Executing 20220522140548.fix_userid_pk.down.sql...
   Success!

-> Executing 20220522135835.init.down.sql...
   Success!

Build on top of SQL integrations, tsql is a command-line dedicated to manage SQL operations.

It allows you to version, run, rollback, and test migrations across databases. To avoid access collisions, a remote mutex is automatically leveraged and scoped by integration and by Temporal namespace.

tsql follows the same developer experience offered by tctl. It's the perfect addition for engineering teams who want fault-tolerant SQL operations and consistency across all their integrations.