️ Este projeto está obsoleto e não é mais mantido. Recomendamos usar o servidor de desenvolvimento Temporal CLI.️
Temporalite é uma distribuição de Temporal que roda como um processo único com zero dependências de tempo de execução.
A persistência em disco e o modo na memória são suportados via SQLite.
Confira este vídeo para uma breve introdução e demonstração: youtu.be/Hz7ZZzafBoE [16:13] - a demonstração começa às 11:28
O objetivo principal do Temporalite é tornar simples e rápido a execução do Temporal localmente ou em ambientes de teste.
Recursos que se alinham com esse objetivo:
Baixe e extraia a versão mais recente das versões do GitHub.
Inicie o servidor temporal:
temporalite start --namespace default
Neste ponto você deve ter um servidor rodando em localhost:7233
e uma interface web em http://localhost:8233.
Use a ferramenta de linha de comando tctl
do Temporal para interagir com o servidor Temporalite local.
tctl namespace list
tctl workflow list
Use o sinalizador de ajuda para ver todas as opções disponíveis:
temporalite start -h
Os namespaces podem ser pré-registrados na inicialização para que estejam disponíveis para uso imediato:
temporalite start --namespace foo --namespace bar
Registrar namespaces à moda antiga via tctl --namespace foo namespace register
também funciona!
Por padrão, temporalite
persiste no estado de um arquivo no diretório de configuração do usuário atual. Este caminho pode ser substituído:
temporalite start -f my_test.db
Um modo na memória também está disponível. Observe que todos os dados serão perdidos em cada reinicialização.
temporalite start --ephemeral
Por padrão, a UI da web é iniciada com Temporalite. A UI pode ser desativada por meio de um sinalizador de tempo de execução:
temporalite start --headless
Para construir sem recursos de UI estáticos, use a tag headless
build ao executar go build
.
Alguns usos avançados requerem valores de configuração dinâmica temporal que geralmente são definidos por meio de um arquivo de configuração dinâmica dentro do arquivo de configuração temporal. Como alternativa, os valores de configuração dinâmica podem ser definidos por meio de --dynamic-config-value KEY=JSON_VALUE
.
Por exemplo, para desativar o cache de atributos de pesquisa para disponibilizar os atributos de pesquisa criados para uso imediato:
temporalite start --dynamic-config-value system.forceSearchAttributesCacheRefreshOnRead=true
Para compilar o código-fonte, execute:
go build -o dist/temporalite ./cmd/temporalite
Para executar todos os testes:
go test ./...