https://github.com/zio-archive/zio-flow
Resilient, distributed applications powered by ZIO
https://github.com/zio-archive/zio-flow
Last synced: 15 days ago
JSON representation
Resilient, distributed applications powered by ZIO
- Host: GitHub
- URL: https://github.com/zio-archive/zio-flow
- Owner: zio
- License: apache-2.0
- Created: 2021-01-11T19:23:09.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-20T01:43:45.000Z (about 1 year ago)
- Last Synced: 2025-01-08T16:08:07.335Z (9 months ago)
- Language: Scala
- Homepage: https://zio.dev/zio-flow
- Size: 1.82 MB
- Stars: 144
- Watchers: 13
- Forks: 39
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
[//]: # (This file was autogenerated using `zio-sbt-website` plugin via `sbt generateReadme` command.)
[//]: # (So please do not edit it manually. Instead, change "docs/index.md" file or sbt setting keys)
[//]: # (e.g. "readmeDocumentation" and "readmeSupport".)# ZIO Flow
ZIO Flow is an engine for executing persistent, distributed, fault-tolerant applications, providing an easy and powerful way to build stateful serverless applications.
[](https://github.com/zio/zio/wiki/Project-Stages)  [](https://oss.sonatype.org/content/repositories/releases/dev/zio/zio-flow_2.13/) [](https://oss.sonatype.org/content/repositories/snapshots/dev/zio/zio-flow_2.13/) [](https://javadoc.io/doc/dev.zio/zio-flow-docs_2.13) [](https://github.com/zio/zio-flow)
ZIO Flow helps you orchestrate complex business logic, without having to worry about fallible systems, transient failures, manual rollbacks, or other infrastructure.
- Type-safe, compositional front-end
- Resilient interactions with databases, web services, and microservices
- Persistent workflows that survive restarts
- Transactional guarantees via a persistent saga pattern## Getting started
For defining ZIO Flow programs, you need to add the following dependency to your `build.sbt` file:
```scala
libraryDependencies += "dev.zio" %% "zio-flow" % "1.0.0-RC3"
```This module is available for Scala.js as well.
To learn more about defining ZIO Flow programs, see [Defining flows](zflow).
There are a couple of _activity libraries_ providing integration with 3rd party services. These libraries are available as separate modules,
and they only have to be present on the definition side of your flows. The executor does not need to have these libraries on the classpath.```scala
libraryDependencies += "dev.zio" %% "zio-flow-twilio" % "1.0.0-RC3"
libraryDependencies += "dev.zio" %% "zio-flow-sendgrid" % "1.0.0-RC3"
```There are many ways to execute ZIO Flow programs. The easiest way is to use a compiled version of the built-in _ZIO Flow Server_:
```scala
sbt zioFlowServer/run
```We will provide ready to use Docker images as well in the future.
To embed the ZIO Flow executor in your own application, you need to add the following dependency:
```scala
libraryDependencies += "dev.zio" %% "zio-flow-runtime" % "1.0.0-RC3"
```For more information about the executors, see [Execution](execution).
You will also need to choose a [persistent backend implementation](backends):```scala
libraryDependencies += "dev.zio" %% "zio-flow-rocksdb" % "1.0.0-RC3"
libraryDependencies += "dev.zio" %% "zio-flow-dynamodb" % "1.0.0-RC3"
libraryDependencies += "dev.zio" %% "zio-flow-cassandra" % "1.0.0-RC3"
```## Documentation
Learn more on the [ZIO Flow homepage](https://zio.dev/zio-flow/)!
## Contributing
For the general guidelines, see ZIO [contributor's guide](https://zio.dev/about/contributing).
## Code of Conduct
See the [Code of Conduct](https://zio.dev/about/code-of-conduct)
## Support
Come chat with us on [![Badge-Discord]][Link-Discord].
[Badge-Discord]: https://img.shields.io/discord/629491597070827530?logo=discord "chat on discord"
[Link-Discord]: https://discord.gg/2ccFBr4 "Discord"## License
[License](LICENSE)