package flow
- Alphabetic
- By Inheritance
- flow
- OffsetDateTimeModule
- InstantModule
- Schemas
- LowerPrioritySchemas
- Syntax
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
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.Type
- type ConfigKey = flow.ConfigKey.Type
- trait Configuration extends AnyRef
- final case class ExecutingFlow[+E, +A](id: FlowId, result: PromiseId) extends Product with Serializable
- type FlowId = flow.FlowId.Type
- 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
- sealed 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.Type
- type RecursionId = flow.RecursionId.Type
- 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.Type
- 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.Type
- 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