Skip to main content

Asset Document Operations

Summary

This page describes how the asset-service integrates with the document-service. The asset-service holds document references only; the document bytes live in the document-service. A typed HTTP client (30s timeout) performs upload and download operations, and failures map to error results. In production, a fail-safe returns HTTP 503 when the document-service is unavailable. No orphan reconciliation was found in source.

Audience

  • DevOps engineers operating the document integration path.
  • Support and QA engineers investigating document attach/download issues.
  • Solution architects assessing storage ownership boundaries.

Reference Content

Ownership split

ConcernOwner
Document bytes / binary storagedocument-service
Document reference metadataasset-service

The asset-service never stores binary content; it keeps references and defers all byte handling to the document-service via the typed DocumentServiceClient (30s timeout).

Failure behavior

  • Upload and download failures map to error results returned to the caller.
  • In production, when the document-service is unavailable, a fail-safe returns HTTP 503 (per prior epics).

This keeps document unavailability from silently succeeding or corrupting asset state.

Boundaries (Requires confirmation)

  • Orphan reconciliation between asset references and document-service bytes: not found in source.
  • Compensation for a document deletion that leaves dangling references or vice versa: not implemented (see recovery and rollback).

These are classified Requires confirmation; no reconciliation runbook is asserted here.

Source References

  • microservices/src/asset-service/Infrastructure/DocumentServiceClient.cs
  • microservices/src/asset-service/Program.cs
  • microservices/src/asset-service/Api/AssetEndpoints.cs

See Also

Keywords

asset documents, document-service, reference-only, fail-safe 503, orphan reconciliation

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-17
  • Review cycle: Quarterly