package flow
- Alphabetic
- By Inheritance
- flow
- OffsetDateTimeModule
- InstantModule
- Schemas
- LowerPrioritySchemas
- Syntax
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
final
case class
Activity[-Input, Result](name: String, description: String, operation: Operation[Input, Result], check: ZFlow[Input, ActivityError, Result], compensate: ZFlow[Result, ActivityError, Unit]) extends Product with Serializable
Activity is a special step for a zio-flow workflow capable of communicating with the external world via an Operation.
Activity is a special step for a zio-flow workflow capable of communicating with the external world via an Operation.
When calling an activity from a workflow, a value of type Input must be provided, and the result of successfully executing an activity has the type Result.
An activity can be reverted when it is being called from a transaction. If the transaction get reverted (due to a failure or a retry) the compensate flow can perform an arbitrary number of steps necessary to cancel whatever the activity has done. If this is not supported, use Activity.compensateNotSupported.
The check flow can be used to perform steps verifying if the activity still needed to be executed. In case it was restarted by a transaction or because the whole workflow executor got restarted, this feature can be used to make sure the operation was only executed exactly once. If this is not supported, use Activity.checkNotSupported.
-
case class
ActivityError(failure: String, details: Option[Throwable]) extends Product with Serializable
Failure of running an Activity
- type BindingName = flow.BindingName.Base with flow.BindingName.Tag
- type ConfigKey = flow.ConfigKey.Base with flow.ConfigKey.Tag
- trait Configuration extends AnyRef
- final case class ExecutingFlow[+E, +A](id: FlowId, result: PromiseId) extends Product with Serializable
- final case class ExecutionEnvironment(serializer: Serializer, deserializer: Deserializer, configuration: Configuration, gcPeriod: java.time.Duration = 5.minutes) extends Product with Serializable
- type FlowId = flow.FlowId.Base with flow.FlowId.Tag
- implicit final class FlowIdSyntax extends AnyVal
-
type
Instant = java.time.Instant
- Definition Classes
- InstantModule
- trait InstantModule extends AnyRef
- trait LocalContext extends AnyRef
- trait LowerPrioritySchemas extends AnyRef
-
type
OffsetDateTime = java.time.OffsetDateTime
- Definition Classes
- OffsetDateTimeModule
- trait OffsetDateTimeModule extends AnyRef
-
trait
Operation[-Input, +Result] extends AnyRef
Operation describes the way a zio-flow workflow communicates with the outside world.
Operation describes the way a zio-flow workflow communicates with the outside world.
An operation always has an input value of type Input, and a result value of type Result. What the operation does with the input value to get the result depends on the actual operation's other properties.
Both the input and the result types need to have a schema, because the workflow executor may need to encode/decode values when communicating with an external service.
Currently the only supported operation is the Operation.Http operation.
Operations are not directly used from the zio-flow programs, but through Activity values.
When writing tests for workflows the MockedOperation class provides capabilities to mock these operations instead of using the real operation executor.
-
trait
OperationExecutor extends AnyRef
An
OperationExecutorcan execute operations, or fail trying. - type PromiseId = flow.PromiseId.Base with flow.PromiseId.Tag
- type RecursionId = flow.RecursionId.Base with flow.RecursionId.Tag
- implicit final class RecursionIdSyntax extends AnyVal
-
sealed
trait
Remote[+A] extends AnyRef
A
Remote[A]is a blueprint for constructing a value of typeAon a remote machine.A
Remote[A]is a blueprint for constructing a value of typeAon a remote machine. Remote values can always be serialized, because they are mere blueprints, and they do not contain any Scala code. - trait RemoteContext extends AnyRef
- sealed trait RemoteEvaluationError extends AnyRef
- type RemoteVariableName = flow.RemoteVariableName.Base with flow.RemoteVariableName.Tag
-
case class
RemoteVariableReference[A](name: RemoteVariableName) extends Product with Serializable
Represents a reference to a persisted remote variable of type A
Represents a reference to a persisted remote variable of type A
Remote variables can not be shared between top level workflows, but they can be accessed from forked workflows. For more information about scoping of remote variables see zio.flow.runtime.internal.RemoteVariableScope
- trait Schemas extends LowerPrioritySchemas
- trait Syntax extends AnyRef
-
implicit
class
ZFlowSyntax[R, E, A] extends AnyRef
- Definition Classes
- Syntax
- type TransactionId = flow.TransactionId.Base with flow.TransactionId.Tag
- case class VariableUsage(variables: Set[RemoteVariableName], bindings: Set[BindingName]) extends Product with Serializable
-
sealed
trait
ZFlow[-R, +E, +A] extends AnyRef
ZFlow is a serializable executable workflow.
ZFlow is a serializable executable workflow.
Values (including functions) used in ZFlows must be Remote values which guarantees that they can be persisted.
- R
The type of the input that can be provided for the workflow
- E
The type this workflow can fail with
- A
The result type this workflow returns with in case it succeeds
-
trait
ZFlowSchedule[Ctx] extends AnyRef
Represents a schedule for running a workflow in the future
- sealed trait ZFlowTransaction extends AnyRef
Value Members
-
implicit
def
RemoteBigDecimalCompanion(bigDecimal: BigDecimal.type): RemoteBigDecimalCompanionSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteBoolean(remote: Remote[Boolean]): RemoteBooleanSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteChar(remote: Remote[Char]): RemoteCharSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteChronoUnit(remote: Remote[ChronoUnit]): RemoteChronoUnitSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteChunk[A](remote: Remote[Chunk[A]]): RemoteChunkSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteChunkCompanion(chunk: Chunk.type): RemoteChunkCompanionSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteDuration(remote: Remote[zio.Duration]): RemoteDurationSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteDurationCompanion(duration: Duration.type): RemoteDurationCompanionSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteEither[A, B](remote: Remote[Either[A, B]]): RemoteEitherSyntax[A, B]
- Definition Classes
- Syntax
-
implicit
def
RemoteExecutingFlow[E, A](remote: Remote[ExecutingFlow[E, A]]): RemoteExecutingFlowSyntax[E, A]
- Definition Classes
- Syntax
-
implicit
def
RemoteFractional[A](remote: Remote[A]): RemoteFractionalSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteInstant(remote: Remote[Instant]): RemoteInstantSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteInstantCompanion(instant: Instant.type): RemoteInstantCompanionSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteList[A](remote: Remote[List[A]]): RemoteListSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteListChar(remote: Remote[List[Char]]): RemoteListCharSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteListCompanion(list: List.type): RemoteListCompanionSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteMap[K, V](remote: Remote[Map[K, V]]): RemoteMapSyntax[K, V]
- Definition Classes
- Syntax
-
implicit
def
RemoteNumeric[A](remote: Remote[A]): RemoteNumericSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteOffsetDateTime(remote: Remote[OffsetDateTime]): RemoteOffsetDateTimeSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteOffsetDateTimeCompanion(instant: OffsetDateTime.type): RemoteOffsetDateTimeCompanionSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteOption[A](remote: Remote[Option[A]]): RemoteOptionSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteRegex(remote: Remote[Regex]): RemoteRegexSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteRelational[A](remote: Remote[A]): RemoteRelationalSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteSet[A](remote: Remote[Set[A]]): RemoteSetSyntax[A]
- Definition Classes
- Syntax
-
implicit
def
RemoteString(remote: Remote[String]): RemoteStringSyntax
- Definition Classes
- Syntax
-
implicit
def
RemoteVariable[A](remote: Remote[RemoteVariableReference[A]]): RemoteVariableReferenceSyntax[A]
- Definition Classes
- Syntax
-
implicit
val
chronoFieldSchema: Schema[ChronoField]
- Definition Classes
- Schemas
-
implicit
val
chronoUnitSchema: Schema[ChronoUnit]
- Definition Classes
- Schemas
-
implicit
val
regexSchema: Schema[Regex]
- Definition Classes
- Schemas
-
implicit
def
remoteStringInterpolator(ctx: StringContext): RemoteStringInterpolator
- Definition Classes
- Syntax
-
implicit
def
remoteTuple10Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)]): flow.remote.RemoteTuples.RemoteTuple10.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple11Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)]): flow.remote.RemoteTuples.RemoteTuple11.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple12Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)]): flow.remote.RemoteTuples.RemoteTuple12.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple13Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)]): flow.remote.RemoteTuples.RemoteTuple13.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple14Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)]): flow.remote.RemoteTuples.RemoteTuple14.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple15Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)]): flow.remote.RemoteTuples.RemoteTuple15.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple16Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)]): flow.remote.RemoteTuples.RemoteTuple16.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple17Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)]): flow.remote.RemoteTuples.RemoteTuple17.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple18Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)]): flow.remote.RemoteTuples.RemoteTuple18.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple19Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)]): flow.remote.RemoteTuples.RemoteTuple19.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple20Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)]): flow.remote.RemoteTuples.RemoteTuple20.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple21Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)]): flow.remote.RemoteTuples.RemoteTuple21.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple22Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)]): flow.remote.RemoteTuples.RemoteTuple22.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple2Syntax[T1, T2](remote: Remote[(T1, T2)]): flow.remote.RemoteTuples.RemoteTuple2.Syntax[T1, T2]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple3Syntax[T1, T2, T3](remote: Remote[(T1, T2, T3)]): flow.remote.RemoteTuples.RemoteTuple3.Syntax[T1, T2, T3]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple4Syntax[T1, T2, T3, T4](remote: Remote[(T1, T2, T3, T4)]): flow.remote.RemoteTuples.RemoteTuple4.Syntax[T1, T2, T3, T4]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple5Syntax[T1, T2, T3, T4, T5](remote: Remote[(T1, T2, T3, T4, T5)]): flow.remote.RemoteTuples.RemoteTuple5.Syntax[T1, T2, T3, T4, T5]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple6Syntax[T1, T2, T3, T4, T5, T6](remote: Remote[(T1, T2, T3, T4, T5, T6)]): flow.remote.RemoteTuples.RemoteTuple6.Syntax[T1, T2, T3, T4, T5, T6]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple7Syntax[T1, T2, T3, T4, T5, T6, T7](remote: Remote[(T1, T2, T3, T4, T5, T6, T7)]): flow.remote.RemoteTuples.RemoteTuple7.Syntax[T1, T2, T3, T4, T5, T6, T7]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple8Syntax[T1, T2, T3, T4, T5, T6, T7, T8](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8)]): flow.remote.RemoteTuples.RemoteTuple8.Syntax[T1, T2, T3, T4, T5, T6, T7, T8]
- Definition Classes
- Syntax
-
implicit
def
remoteTuple9Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9](remote: Remote[(T1, T2, T3, T4, T5, T6, T7, T8, T9)]): flow.remote.RemoteTuples.RemoteTuple9.Syntax[T1, T2, T3, T4, T5, T6, T7, T8, T9]
- Definition Classes
- Syntax
-
implicit
val
schemaDuration: Schema[zio.Duration]
- Definition Classes
- Schemas
-
implicit
def
schemaFailure[A]: Schema[Failure[A]]
- Definition Classes
- Schemas
-
implicit
lazy val
schemaStackTraceElement: Schema[StackTraceElement]
- Definition Classes
- Schemas
-
implicit
def
schemaSuccess[A](implicit schema: Schema[A]): Schema[Success[A]]
- Definition Classes
- Schemas
-
implicit
lazy val
schemaThrowable: Schema[Throwable]
- Definition Classes
- Schemas
-
implicit
def
schemaTry[A](implicit schema: Schema[A]): Schema[Try[A]]
- Definition Classes
- Schemas
-
implicit
val
schemaUri: Schema[URI]
- Definition Classes
- Schemas
-
implicit
val
schemaZNothing: Schema[ZNothing]
- Definition Classes
- Schemas
- object Activity extends Serializable
- object ActivityError extends Serializable
- object BindingName extends Newtype[UUID]
- object ConfigKey extends Newtype[String]
- object Configuration
- object ExecutingFlow extends Serializable
- object FlowId extends Newtype[String]
-
object
Instant
- Definition Classes
- InstantModule
- object LocalContext
-
object
OffsetDateTime
- Definition Classes
- OffsetDateTimeModule
- object Operation
- object OperationExecutor
- object PromiseId extends Newtype[String]
- object Random
- object RecursionId extends Newtype[UUID]
- object Remote
- object RemoteContext
- object RemoteEvaluationError
- object RemoteVariableName extends Newtype[String]
- object RemoteVariableReference extends Serializable
- object TransactionId extends Newtype[String]
- object VariableUsage extends Serializable
- object ZFlow
- object ZFlowSchedule
- object ZFlowTransaction