A Quarkus extension that lets you utilize Temporal, orchestrating both mission-critical and mainstream workloads.
Using this service has some obvious advantages including but not limited to:
- Temporal captures the complete state of your functions (variables, threads, blocking calls) so you get the benefits of a state machine, without maintaining complex state machine code.
- Temporal allows you to define exponential retry policies for Activities, so you don’t have to write retry logic into your application code. And your retry duration can be as long as needed, even months.
- Set timers to wait for days, weeks, or months, knowing that an outage or server restart during the wait period won’t prevent your workflow from executing.
- Temporal delivers an ability to schedule a workflow (much like a cron job) and then pause, re-start, and stop them as needed.
- Temporal allows you to simply code for durable execution.
- Use external sources -- including human actions -- that interact seamlessly with Workflows.
- Temporal allows you to inspect, replay, and rewind every Workflow execution, step by step.
Read the full Quarkus Temporal documentation or check out the Quarkus Insights video explaining what Temporal is and how to use it!
Create a new temporal project (with a base temporal starter code):
- With code.quarkus.io
- With the Quarkus CLI:
quarkus create app temporal-app -x=io.quarkiverse.temporal:quarkus-temporal
Or add to you pom.xml directly:
<dependency>
<groupId>io.quarkiverse.temporal</groupId>
<artifactId>quarkus-temporal</artifactId>
<version>{project-version}</version>
</dependency>
Important
This extension is not supported in GraalVM Native Image mode due to complexities Temporal's use of grpc-netty-shaded
.
Netty 5 will apparently fix the issue so it possibly might have to wait until that release.
Quarkus Temporal Petstore is a comprehensive demonstration using Quarkus and Temporal. It simulates placing a new order on your Petstore website and fulfilling the order using a microservice architecture.
- Contribution is the best way to support and get involved in community!
- Please, consult our Code of Conduct policies for interacting in our community.
- Contributions to
quarkus-temporal
Please check our CONTRIBUTING.md
Thanks goes to these wonderful people (emoji key):
Loïc Hermann 🚧 💻 |
Melloware 🚧 💻 |
Geoffrey GREBERT 💻 |
tmulle 🤔 |
Shrikanth |
Thore Johnsen 🐛 |