@@ -337,6 +337,9 @@ message RpcFunctionMetadata {
337337 // A flag indicating if managed dependency is enabled or not
338338 bool managed_dependency_enabled = 14 ;
339339
340+ // The optional function execution retry strategy to use on invocation failures.
341+ RpcRetryOptions retry_options = 15 ;
342+
340343 // Properties for function metadata
341344 // They're usually specific to a worker and largely passed along to the controller API for use
342345 // outside the host
@@ -698,3 +701,30 @@ message ModelBindingData
698701message CollectionModelBindingData {
699702 repeated ModelBindingData model_binding_data = 1 ;
700703}
704+
705+ // Retry policy which the worker sends the host when the worker indexes
706+ // a function.
707+ message RpcRetryOptions
708+ {
709+ // The retry strategy to use. Valid values are fixed delay or exponential backoff.
710+ enum RetryStrategy
711+ {
712+ exponential_backoff = 0 ;
713+ fixed_delay = 1 ;
714+ }
715+
716+ // The maximum number of retries allowed per function execution.
717+ // -1 means to retry indefinitely.
718+ int32 max_retry_count = 2 ;
719+
720+ // The delay that's used between retries when you're using a fixed delay strategy.
721+ google.protobuf.Duration delay_interval = 3 ;
722+
723+ // The minimum retry delay when you're using an exponential backoff strategy
724+ google.protobuf.Duration minimum_interval = 4 ;
725+
726+ // The maximum retry delay when you're using an exponential backoff strategy
727+ google.protobuf.Duration maximum_interval = 5 ;
728+
729+ RetryStrategy retry_strategy = 6 ;
730+ }
0 commit comments