Tourbillon Quickstart
info
Quickstart using an AI Agent
info
Ensure you have setup the Tourbillon MCP with your chosen agent.
On your terminal create a new directory:
mkdir tourbillon-quickstart && cd tourbillon-quickstart
Using your chosen agent prompt the following:
Create a durable execution package "quickstart"
Generate the Tourbillon contracts:
Generate the Tourbillon contracts
Run the test suite:
Run the Tourbillon tests
Running your first durable execution
Generate the Tourbillon configuration:
Generate the Tourbillon configuration
You will now need to use git to commit your current changes:
git init
git add buf.* contracts.binpb quickstart tourbillon.*
git commit -m 'feat(quickstart): first commit'
And run the Tourbillon service:
tourbillon run -d
Execute your durable execution and fetch the result
- curl
- grpcurl
curl --header 'Content-Type: application/json' --data '{}' \
http://0.0.0.0:4242/quickstart.QuickstartService/Example
{"processId":"5f5fd96a-1a67-4455-a4e3-4669cce61599"}
curl --header 'Content-Type: application/json' \
--data '{"process_id":"5f5fd96a-1a67-4455-a4e3-4669cce61599"}' \
http://0.0.0.0:4242/quickstart.QuickstartService/ExampleAwait
{}
grpcurl -plaintext -d '{}' 0.0.0.0:4242 quickstart.QuickstartService/Example
{"processId":"5f5fd96a-1a67-4455-a4e3-4669cce61599"}
grpcurl -plaintext -d '{"processId":"5f5fd96a-1a67-4455-a4e3-4669cce61599"}' \
0.0.0.0:4242 quickstart.QuickstartService/ExampleAwait
{}
Update the durable execution implementation
Prompt
Update the quickstart example function to return a message in the response that always says "Thank you for using Tourbillon"
Commit the changes
git add contracts.binpb quickstart
git commit -m 'chore(quickstart): Add return message'
The Tourbillon server will pickup the changes according to the project.fetch_interval in tourbillon.toml.
Execute a new durable execution
- curl
- grpcurl
curl --header 'Content-Type: application/json' --data '{}' \
http://0.0.0.0:4242/quickstart.QuickstartService/Example
{"processId":"d76d2145-80bd-4763-9b11-657cf0d6b27c"}
curl --header 'Content-Type: application/json' \
--data '{"process_id":"d76d2145-80bd-4763-9b11-657cf0d6b27c"}' \
http://0.0.0.0:4242/quickstart.QuickstartService/ExampleAwait
{"message": "Thank you for using Tourbillon"}
grpcurl -plaintext -d '{}' 0.0.0.0:4242 quickstart.QuickstartService/Example
{"processId":"d76d2145-80bd-4763-9b11-657cf0d6b27c"}
grpcurl -plaintext -d '{"processId":"d76d2145-80bd-4763-9b11-657cf0d6b27c"}' \
0.0.0.0:4242 quickstart.QuickstartService/ExampleAwait
{"message": "Thank you for using Tourbillon"}