Files
distributor/docs/internal/notify.md

1.7 KiB

Notification Internals

Audience: developers and LLM coding agents changing internal/notify or app notification wiring.

Purpose

internal/notify defines the notification interface used by app orchestration after successful destination publication or replacement.

Inputs And Outputs

Input is a context and notification event containing pipeline id, destination id, bundle id, bundle path, action, and output metadata. Output is an error that app orchestration can record as a destination-scoped failure.

Boundaries

Only the no-op notifier exists in the repository. The package does not load config, send network requests, write destination state, publish files, or own run reporting.

Config Fields Used

None.

Adapters Used

None.

State And Manifest Behavior

Notification events carry output metadata projected from publish plans. The package does not inspect source manifests or destination state.

Skip And Resume Behavior

Dry-run, skipped destinations, failed destinations, and planning failures do not notify. The no-op notifier has no durable state.

Failure Behavior

notify.Noop returns the context error when the context is canceled; otherwise it succeeds. If another notifier implementation returns an error, internal/app records the affected destination as failed and continues with remaining destinations where applicable.

Tests To Inspect

  • internal/notify
  • internal/app/run_notify.go
  • notification coverage in internal/app/run_test.go

Architectural Invariants

  • Notifications occur only after successful publish or replacement execution.
  • Dry-run never notifies.
  • Skipped and failed destinations never notify.
  • The default app notifier is notify.Noop.