Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/quarkiverse/quarkus-temporal
Temporal (https://temporal.io/) is a developer-first, open source platform that ensures the successful execution of services and applications.
https://github.com/quarkiverse/quarkus-temporal
quarkus-extension workflow
Last synced: 5 days ago
JSON representation
Temporal (https://temporal.io/) is a developer-first, open source platform that ensures the successful execution of services and applications.
- Host: GitHub
- URL: https://github.com/quarkiverse/quarkus-temporal
- Owner: quarkiverse
- License: apache-2.0
- Created: 2024-08-09T15:10:59.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-05T12:27:19.000Z (10 days ago)
- Last Synced: 2024-11-09T07:33:46.677Z (6 days ago)
- Topics: quarkus-extension, workflow
- Language: Java
- Homepage: https://docs.quarkiverse.io/quarkus-temporal/dev
- Size: 449 KB
- Stars: 9
- Watchers: 5
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-durable-executions - Quarkus Temporal
- awesome-durable-executions - Quarkus Temporal
README
# Quarkus Temporal
[![Version](https://img.shields.io/maven-central/v/io.quarkiverse.temporal/quarkus-temporal?logo=apache-maven&style=flat-square)](https://search.maven.org/artifact/io.quarkiverse.temporal/quarkus-temporal)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](https://opensource.org/licenses/Apache-2.0)
[![Build](https://github.com/quarkiverse/quarkus-temporal/actions/workflows/build.yml/badge.svg)](https://github.com/quarkiverse/quarkus-temporal/actions/workflows/build.yml)A Quarkus extension that lets you utilize [Temporal](https://temporal.io/), 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.## Getting started
Read the full [Quarkus Temporal documentation](https://docs.quarkiverse.io/quarkus-temporal/dev/index.html) or check out the [Quarkus Insights](https://youtu.be/XICZxuaeYwI) video explaining what Temporal is and how to use it!
### Installation
Create a new temporal project (with a base temporal starter code):
- With [code.quarkus.io](https://code.quarkus.io/?a=temporal-bowl&j=17&e=io.quarkiverse.temporal%3Aquarkus-temporal)
- With the [Quarkus CLI](https://quarkus.io/guides/cli-tooling):```bash
quarkus create app temporal-app -x=io.quarkiverse.temporal:quarkus-temporal
```
Or add to you pom.xml directly:```xml
io.quarkiverse.temporal
quarkus-temporal
{project-version}```
> [!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.## Demonstration Use Case
[Quarkus Temporal Petstore](https://github.com/melloware/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.
[![Quarkus Faces YouTube](http://img.youtube.com/vi/XICZxuaeYwI/0.jpg)](http://www.youtube.com/watch?v=XICZxuaeYwI "Quarkus Insights #183: Building Indestructible Services with Temporal")
## π§βπ» Contributing
- Contribution is the best way to support and get involved in community!
- Please, consult our [Code of Conduct](./CODE_OF_CONDUCT.md) policies for interacting in our community.
- Contributions to `quarkus-temporal` Please check our [CONTRIBUTING.md](./CONTRIBUTING.md)### If you have any idea or question π€·
- [Ask a question](https://github.com/quarkiverse/quarkus-temporal/discussions)
- [Raise an issue](https://github.com/quarkiverse/quarkus-temporal/issues)
- [Feature request](https://github.com/quarkiverse/quarkus-temporal/issues)
- [Code submission](https://github.com/quarkiverse/quarkus-temporal/pulls)## Contributors β¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
LoΓ―c Hermann
π§ π»
Melloware
π§ π»
Geoffrey GREBERT
π»
tmulle
π€ β οΈ
Shrikanth
β οΈ
Thore Johnsen
π