• This repository has been archived on 03/Apr/2024
  • Stars
    star
    608
  • Rank 73,233 (Top 2 %)
  • Language
    Go
  • License
    MIT License
  • Created over 3 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An experimental distribution of Temporal that runs as a single process

Temporalite

Go Reference ci codecov

⚠️ This project is experimental and not suitable for production use. ⚠️

Temporalite is a distribution of Temporal that runs as a single process with zero runtime dependencies.

Persistence to disk and an in-memory mode are both supported via SQLite.

Check out this video for a brief introduction and demo: youtu.be/Hz7ZZzafBoE [16:13] -- demo starts at 11:28

Why

The primary goal of Temporalite is to make it simple and fast to run Temporal locally or in testing environments.

Features that align with this goal:

  • Easy setup and teardown
  • Fast startup time
  • Minimal resource overhead: no dependencies on a container runtime or database server
  • Support for Windows, Linux, and macOS
  • Ships with a web interface

Getting Started

Download and Start Temporal Server Locally

Download and extract the latest release from GitHub releases.

Start Temporal server:

temporalite start --namespace default

At this point you should have a server running on localhost:7233 and a web interface at http://localhost:8233.

Use CLI

Use Temporal's command line tool tctl to interact with the local Temporalite server.

tctl namespace list
tctl workflow list

Configuration

Use the help flag to see all available options:

temporalite start -h

Namespace Registration

Namespaces can be pre-registered at startup so they're available to use right away:

temporalite start --namespace foo --namespace bar

Registering namespaces the old-fashioned way via tctl --namespace foo namespace register works too!

Persistence Modes

File on Disk

By default temporalite persists state to a file in the current user's config directory. This path may be overridden:

temporalite start -f my_test.db

Ephemeral

An in-memory mode is also available. Note that all data will be lost on each restart.

temporalite start --ephemeral

Web UI

By default the web UI is started with Temporalite. The UI can be disabled via a runtime flag:

temporalite start --headless

To build without static UI assets, use the headless build tag when running go build.

Dynamic Config

Some advanced uses require Temporal dynamic configuration values which are usually set via a dynamic configuration file inside the Temporal configuration file. Alternatively, dynamic configuration values can be set via --dynamic-config-value KEY=JSON_VALUE.

For example, to disable search attribute cache to make created search attributes available for use right away:

temporalite start --dynamic-config-value system.forceSearchAttributesCacheRefreshOnRead=true

Development

To compile the source run:

go build -o dist/temporalite ./cmd/temporalite 

To run all tests:

go test ./...

Known Issues

  • When consuming Temporalite as a library in go mod, you may want to replace grpc-gateway with a fork to address URL escaping issue in UI. See #118

More Repositories

1

temporal

Temporal service
Go
11,040
star
2

sdk-typescript

Temporal TypeScript SDK
TypeScript
510
star
3

sdk-python

Temporal Python SDK
Python
446
star
4

sdk-go

Temporal Go SDK
Go
437
star
5

samples-go

Temporal Go SDK samples
Go
404
star
6

sdk-dotnet

Temporal .NET SDK
C#
373
star
7

samples-typescript

TypeScript
297
star
8

docker-compose

Temporal docker-compose files
Shell
296
star
9

helm-charts

Temporal Helm charts
Mustache
273
star
10

sdk-core

Core Temporal SDK that can be used as a base for language specific Temporal SDKs
Rust
262
star
11

sdk-php

Temporal PHP SDK
PHP
255
star
12

cli

Command-line interface for running Temporal Server and interacting with Workflows, Activities, Namespaces, and other parts of Temporal
Go
246
star
13

sdk-java

Temporal Java SDK
Java
196
star
14

ui

Temporal UI
TypeScript
178
star
15

samples-java

Temporal Java SDK samples
Java
152
star
16

awesome-temporal

A curated list of awesome Temporal libraries and resources.
142
star
17

maru

Benchmarks for Temporal workflows
Go
124
star
18

samples-python

Samples for working with the Temporal Python SDK
Python
117
star
19

samples-php

Temporal PHP SDK samples
PHP
88
star
20

documentation

Temporal documentation
Python
84
star
21

dashboards

Temporal Dashboards
77
star
22

api

Temporal gRPC API and proto files
Makefile
77
star
23

web

Temporal Web UI v1
JavaScript
70
star
24

ui-server

Golang Server for https://github.com/temporalio/ui
Go
66
star
25

proposals

Temporal proposals
66
star
26

experiment-dotnet

Temporal SDK for .NET
C#
65
star
27

snipsync

JavaScript
65
star
28

sdk-ruby

Temporal Ruby SDK
Ruby
64
star
29

background-checks

Sample application using Temporal
Go
62
star
30

temporal-ecommerce

Go
57
star
31

samples-dotnet

Samples for working with the Temporal .NET SDK
C#
52
star
32

money-transfer-project-template-go

Go
47
star
33

tctl

Temporal CLI
Go
43
star
34

samples-server

Go
38
star
35

temporal-polyglot

PHP
35
star
36

tcld

The temporal cloud cli.
Go
29
star
37

docker-builds

Temporal service Docker images build
Shell
27
star
38

api-go

Temporal gRPC API and proto files compiled for Go
Go
27
star
39

temporal-render-simple

temporal-render-simple
Shell
25
star
40

edu-101-go-code

Code used in exercises and demonstrations for the "Temporal 101 with Go" course
CSS
24
star
41

roadrunner-temporal

Temporal PHP-SDK Host Process plugin for Roadrunner
Go
22
star
42

spring-boot-demo

Sample application demonstrating Temporal JavaSDK Spring Boot integration
Java
22
star
43

temporaldotio

Website for temporal.io. Built with Next.js + Preact + Tailwind, hosted on Vercel
JavaScript
20
star
44

vscode-debugger-extension

Visual Studio Code debugger plugin
TypeScript
18
star
45

ringpop-go

Go
17
star
46

temporal-pendulum

Demo showing off Temporal Polyglot features (Java, Go, TypeScript, PHP)
Java
16
star
47

benchmark-workers

Pre-written workflows and activities useful for benchmarking Temporal
Go
14
star
48

features

Behavior and history compatibility testing for Temporal SDKs
Go
13
star
49

subscription-workflow-project-template-go

Go
13
star
50

subscription-workflow-project-template-php

Subscription Workflow Project Template for PHP
PHP
12
star
51

omes

A load generator for Temporal
C#
12
star
52

sagas-temporal-trip-booking

Java
12
star
53

temporal-aws-sdk-go

Temporal activities and workflow stubs that wrap AWS Go SDK
Go
12
star
54

graphql

GraphQL API for Temporal Server
HTML
11
star
55

money-transfer-project-java

Java
11
star
56

subscription-workflow-project-template-typescript

This project template illustrates the design pattern for subscription style business logic.
TypeScript
11
star
57

sdk-scala

Scala SDK for Temporal
10
star
58

terraform-provider-temporalcloud

Terraform provider for Temporal Cloud
Go
10
star
59

github-repo-notion-sync

Sync an organization's GitHub repo list to a Notion DB
TypeScript
9
star
60

benchmark-matrix

Automated benchmarks for Temporal
TypeScript
8
star
61

api-cloud

Temporal cloud gRPC API and proto files
Makefile
7
star
62

hello-world-project-template-go

Go
7
star
63

temporal-compensating-transactions

A four implementations of the Compensating Transaction pattern in Temporal in go, python, java and typescript
Java
6
star
64

edu-102-go-code

Code used in exercises and demonstrations for the "Temporal 102 with Go" course
Go
6
star
65

xk6-temporal

k6 Extension for testing/benchmarking Temporal
Go
6
star
66

hello-world-project-template-java

Java
6
star
67

money-transfer-project-template-ts

TypeScript
6
star
68

subscription-workflow-project-template-java

Subscription workflow project template for Java
Java
5
star
69

edu-101-java-code

Code Exercises for Temporal 101 in java
CSS
4
star
70

edu-101-typescript-code

Code used in exercises and demonstrations for the Temporal 101 (TypeScript) course
CSS
4
star
71

temporal-aws-sdk-generator

AWS SDK Bindings Generator
Go
4
star
72

documentation-samples-python

Python
4
star
73

data-pipeline-project-python

Python
4
star
74

temporal-animations

A toolkit for creating animations explaining Temporal
Python
4
star
75

reference-app-orders-go

Order processing reference application
Go
4
star
76

temporal-jumpstart-java

Some repos Start. This one Jump Starts.
Java
3
star
77

documentation-samples-go

Go
3
star
78

homebrew-brew

The official Homebrew tap for temporalio
Ruby
3
star
79

docusaurus-plugin-snipsync

Snipsync plugin for docusaurus - insert snippets into markdown files
TypeScript
3
star
80

money-transfer-project-template-python

Python
3
star
81

graphql-proxy

GraphQL API for Temporal Server
Java
3
star
82

background-check-typescript

TypeScript
3
star
83

team

The Temporal team
3
star
84

sdk-php-interceptors-opentelemetry

Opentelemetry interceptors package for PHP SDK
PHP
3
star
85

email-subscription-project-python

Python
3
star
86

temporal-learning

HTML
3
star
87

temporal-demo-infra

Svelte
2
star
88

temporal-development-patterns-whitepapers

Temporal Development Patterns Whitepapers
Java
2
star
89

idea-settings

2
star
90

cloud-samples-go

Temporal Cloud Samples - Go
Go
2
star
91

demo-go

Go
2
star
92

setup-temporal

TypeScript
2
star
93

worker-versioning-replay-demo

TypeScript
2
star
94

ringpop-common

JavaScript
2
star
95

cheatsheets

Cheatsheets for the Temporal CLI
2
star
96

temporal-cafe-typescript

TypeScript
2
star
97

temporal-pause-resume-compensate

Java
2
star
98

temporal-vscode

temporal-vscode
1
star
99

replay-demo-2023

Replay Demo 2023: Workflow Update, Schedules and Worker Versioning
Go
1
star
100

test-docs-integration

Ryland test
1
star