pub struct FlowConfig {
pub active_step_search_mode: Option<i32>,
pub continue_as_new_threshold: Option<i32>,
pub continue_as_new_page_size_in_bytes: Option<i32>,
pub step_durability: Option<i32>,
pub worker_target: Option<WorkerTarget>,
pub attribute_store_names: Option<AttributeStoreNames>,
pub history_window_events: Option<i32>,
pub delete_expired_history_objects: Option<bool>,
pub offload_history: Option<bool>,
}Fields§
§active_step_search_mode: Option<i32>§continue_as_new_threshold: Option<i32>Deprecated: Dex does not continue Flows as new. Dex rejects a negative value, stores the value in the Flow configuration, and otherwise ignores it.
continue_as_new_page_size_in_bytes: Option<i32>Deprecated: Dex does not continue Flows as new. Dex rejects a negative value, stores the value in the Flow configuration, and otherwise ignores it.
step_durability: Option<i32>§worker_target: Option<WorkerTarget>§attribute_store_names: Option<AttributeStoreNames>Present empty disables future synchronization; non-empty selects Server-configured stores.
history_window_events: Option<i32>Approximate number of the newest history events that the run keeps for history reads and Time Travel.
Use it to keep more history for a run that you inspect or travel back in often, or less history for a run that writes many events and needs less disk. Leave it unset to use the server’s history.windowEvents setting, which defaults to 10000.
The window counts history events. A command that changes the Flow but records no event counts as one event. When the run holds more than this many events plus one prune chunk, Dex prunes the oldest events until about this many remain. The prune chunk is the smaller of the server’s history.pruneChunkSize setting and one tenth of this window, and at least one. Pruning stops only between commands, so a run keeps slightly more or fewer events than the value. The first event of the run is always kept, and ResetFlow to the beginning of the run always works. GetHistoryEvents no longer returns pruned events, and Time Travel targets only commands inside the window.
Set it at start through FlowStartOptions.flow_config_override, or change it on a running Flow with UpdateFlowConfig. A smaller value takes effect at the run’s next pruning. A larger value keeps more of the events recorded afterwards; pruned events never come back. Once set, the value can be changed but not cleared back to the server default. A child Flow inherits it from its parent unless its own override sets it.
The value must be positive and at most the server’s history.maxWindowEvents setting, which defaults to 100000. StartFlow and UpdateFlowConfig reject other values with INVALID_ARGUMENT. A Step result that starts a SubFlow with such an override is an invalid Worker response: the Step attempt fails and is retried under the Step’s retry policy.
Since server-zd 0.1.21.
delete_expired_history_objects: Option<bool>Deprecated: runs that start with server-zd 0.1.23 or later ignore it.
Such a run, when it offloads its history, always deletes the object of a history segment from object storage about one hour after the history window passes the whole segment. StartFlow, SubFlow overrides, and UpdateFlowConfig still accept the field, so existing clients keep working; StartFlow drops it. A run that started before server-zd 0.1.23 still follows it, and UpdateFlowConfig can still change it for that run.
In server-zd 0.1.22 it chose, for one run, whether those objects were deleted or kept until the run was deleted after its retention.
Since server-zd 0.1.22. Deprecated in server-zd 0.1.23.
offload_history: Option<bool>Whether Dex offloads the run’s history to object storage.
An offloaded run uploads its history to object storage in segment objects. Once a segment is uploaded and a grace period has passed, Dex deletes its history records and superseded values from the local disk, and history reads fetch them from object storage. When the history window passes a whole segment, Dex deletes the segment’s object about one hour later. A run that does not offload keeps its history on the local disk and never writes a history object. The history window applies to both: Dex prunes the oldest events and deletes the superseded values that the window passed.
Leave it unset, which means true, for most runs. A long-running run then keeps only its newest history and current state on the local disk. Set it to false for many short runs that close soon after they start. Each offloaded run writes at least one history object when it closes, and deletes it when its retention ends, so short runs at a high rate add object storage requests while their small history costs little local disk.
A run that does not offload keeps every superseded value that its history window covers on the local disk, with no byte limit. Rewriting large values can then use much local disk. Keep offload for such a run, or give it a smaller history_window_events.
Set it only when the Flow starts, through FlowStartOptions.flow_config_override, or for a child Flow through the SubFlow’s flow_config_override. A child Flow inherits it from its parent unless its own override sets it. The run keeps the value for its whole life: UpdateFlowConfig rejects a request that sets it with INVALID_ARGUMENT. Runs that started before server-zd 0.1.23 keep the history offload behavior that their server gave them.
Since server-zd 0.1.23.
Implementations§
Source§impl FlowConfig
impl FlowConfig
Sourcepub fn active_step_search_mode(&self) -> ActiveStepSearchMode
pub fn active_step_search_mode(&self) -> ActiveStepSearchMode
Returns the enum value of active_step_search_mode, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_active_step_search_mode(&mut self, value: ActiveStepSearchMode)
pub fn set_active_step_search_mode(&mut self, value: ActiveStepSearchMode)
Sets active_step_search_mode to the provided enum value.
Sourcepub fn continue_as_new_threshold(&self) -> i32
pub fn continue_as_new_threshold(&self) -> i32
Returns the value of continue_as_new_threshold, or the default value if continue_as_new_threshold is unset.
Sourcepub fn continue_as_new_page_size_in_bytes(&self) -> i32
pub fn continue_as_new_page_size_in_bytes(&self) -> i32
Returns the value of continue_as_new_page_size_in_bytes, or the default value if continue_as_new_page_size_in_bytes is unset.
Sourcepub fn step_durability(&self) -> StepDurability
pub fn step_durability(&self) -> StepDurability
Returns the enum value of step_durability, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_step_durability(&mut self, value: StepDurability)
pub fn set_step_durability(&mut self, value: StepDurability)
Sets step_durability to the provided enum value.
Sourcepub fn history_window_events(&self) -> i32
pub fn history_window_events(&self) -> i32
Returns the value of history_window_events, or the default value if history_window_events is unset.
Sourcepub fn delete_expired_history_objects(&self) -> bool
pub fn delete_expired_history_objects(&self) -> bool
Returns the value of delete_expired_history_objects, or the default value if delete_expired_history_objects is unset.
Sourcepub fn offload_history(&self) -> bool
pub fn offload_history(&self) -> bool
Returns the value of offload_history, or the default value if offload_history is unset.
Trait Implementations§
Source§impl Clone for FlowConfig
impl Clone for FlowConfig
Source§impl Debug for FlowConfig
impl Debug for FlowConfig
Source§impl Default for FlowConfig
impl Default for FlowConfig
impl Eq for FlowConfig
Source§impl Hash for FlowConfig
impl Hash for FlowConfig
Source§impl Message for FlowConfig
impl Message for FlowConfig
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for FlowConfig
impl PartialEq for FlowConfig
impl StructuralPartialEq for FlowConfig
Auto Trait Implementations§
impl Forget for FlowConfig
impl Freeze for FlowConfig
impl RefUnwindSafe for FlowConfig
impl Send for FlowConfig
impl Sync for FlowConfig
impl Unpin for FlowConfig
impl UnsafeUnpin for FlowConfig
impl UnwindSafe for FlowConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request