Split orchestration by durable use case

This commit is contained in:
ms2k 2026-07-19 01:33:14 +09:00
commit fa81cb7f21
2 changed files with 609 additions and 513 deletions

View file

@ -46,6 +46,8 @@ use crate::{
WorkerError,
};
mod source_execution;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ObjectSourceEndpoint {
pub endpoint: String,
@ -159,20 +161,8 @@ impl AdapterExecutor {
resume: &resume,
};
match source {
SourceSubmissionDto::Http(source) => {
self.execute_http(context, envelope, source, secret, &resources)
.await?;
}
SourceSubmissionDto::ObjectStore(source) => {
self.execute_object(context, envelope, source, secret, &resources)
.await?;
}
SourceSubmissionDto::HuggingFace(source) => {
self.execute_hugging_face(context, envelope, source, secret, &resources)
.await?;
}
}
self.execute_source(context, envelope, source, secret, &resources)
.await?;
context
.require_live_authority()

View file

@ -0,0 +1,31 @@
use remora_contracts::{ExecutionEnvelopeDto, SourceSubmissionDto};
use remora_credentials::SecretMaterial;
use super::{AdapterExecutor, AdapterFailure, ExecutionResources};
use crate::AttemptContext;
impl AdapterExecutor {
pub(super) async fn execute_source(
&self,
context: &AttemptContext,
envelope: &ExecutionEnvelopeDto,
source: SourceSubmissionDto,
secret: Option<SecretMaterial>,
resources: &ExecutionResources<'_>,
) -> Result<(), AdapterFailure> {
match source {
SourceSubmissionDto::Http(source) => {
self.execute_http(context, envelope, source, secret, resources)
.await
}
SourceSubmissionDto::ObjectStore(source) => {
self.execute_object(context, envelope, source, secret, resources)
.await
}
SourceSubmissionDto::HuggingFace(source) => {
self.execute_hugging_face(context, envelope, source, secret, resources)
.await
}
}
}
}