Class BlobUploadHandoffService

java.lang.Object
ai.pipestream.connector.intake.pipedoc.BlobUploadHandoffService

@ApplicationScoped public class BlobUploadHandoffService extends Object
Handles the gRPC blob upload path: persist the doc to repository (durable, blobs are large so we don't route them through Redis), then hand off a reference-only request to the engine.

The engine handoff goes through EngineClient.intakeHandoff(IntakeHandoffRequest), which after the bidi migration delegates to IntakeHandoffStreamClient's long-lived stream — same as every other intake-to-engine call. No unary.

Used only by GrpcBlobUploadService. Not on the gRPC PipeDoc upload path (that path is selected by PipeDocAcceptanceService). Not on the POST upload path (that path uses RepositoryUploadClient directly).

Renamed from RepositoryPipeDocHandoffService during the intake-as-wall refactor: the persistAndHandoff(PipeDoc, ...) variant was deleted because the normal PipeDoc upload path now flows through Redis and the kafka-sidecar drain handles engine handoff. Only the blob variant remains, hence the new class name.

  • Constructor Details

    • BlobUploadHandoffService

      public BlobUploadHandoffService()
      Default constructor for CDI proxying.
  • Method Details

    • persistBlobAndHandoff

      public ai.pipestream.connector.intake.v1.UploadBlobResponse persistBlobAndHandoff(ai.pipestream.data.v1.PipeDoc pipeDoc, ConfigResolutionService.ResolvedConfig resolved, long startTime, String crawlId)
      Persist a blob and hand off the reference to the engine.
      Parameters:
      pipeDoc - The document to hand off
      resolved - The resolved configuration
      startTime - The start time of the operation in nanoseconds
      crawlId - The identifier of the crawl session
      Returns:
      The response containing blob handoff details