Przejdź do treści

Artifact Delivery FAQ

Czym jest Artifact Delivery?

Artifact Delivery jest host-owned płaszczyzną delivery i inbound admission dla artefaktów związanych schemą. Komponent wysyła artifact-delivery-envelope.v1 przez artifact.delivery.send; daemon waliduje kopertę, sprawdza outbound authority, rozwiązuje odbiorców, wybiera adaptery transportu, zapisuje delivery i pokazuje status operatorowi.

Pełny opis operacyjny i diagram są w Artifact Delivery HOWTO.

Po co istnieje Artifact Delivery?

Artifact Delivery zapobiega temu, aby każdy komponent stawał się właścicielem własnego transportu. Komponenty wyrażają intencję delivery; host posiada trasy, wybór adaptera, retry/recovery, inbound admission, własność acceptorów i status operatorski. Dzięki temu INAC, Agora, Matrix mailbox, object-store indirection i domenowe acceptory pozostają warstwami zamiast mieszać się w każdej paczce middleware.

Uzasadnienie i granice warstw są w sekcji rationale w Artifact Delivery HOWTO.

Jakie komponenty używają Artifact Delivery?

Główne warstwy to artifact-delivery-core dla czystych kontraktów oraz logiki routingu/autoryzacji, artifact-delivery dla runtime ledgerów, recovery i admission, ad-host dla adapterów i acceptorów składanych przez daemon oraz route'y daemona/UI operatorskie dla statusu. Obecne adaptery obejmują Agora publish, INAC direct, Matrix mailbox, object-store indirect i node-local loopback tam, gdzie są skonfigurowane.

Mapa komponentów jest w Artifact Delivery HOWTO.

Jak middleware może używać Artifact Delivery?

Middleware używa Artifact Delivery w dwóch kierunkach. Outbound delivery oznacza wywołanie artifact.delivery.send z kopertą i przejście hostowej polityki outbound allow. Inbound delivery oznacza rejestrację acceptora, którego host wywoła dopiero po wspólnych checkach admission. Instalacja paczki sama z siebie nie nadaje authority AD.

Przykłady dla Rust, supervised HTTP, Sensorium OS Actions i JSON-e Flow są w sekcji użycia middleware w Artifact Delivery HOWTO.

Jak konfigurowane jest Artifact Delivery?

Konfiguracja jest własnością hosta. Główne grupy konfiguracji to artifact_delivery routes/allows, artifact_delivery_adapters, inac_peer_transport, artifact_delivery_recovery, artifact_delivery_acceptors, artifact_delivery_profiling i artifact_delivery_observers. Koperta kontroluje pojedyncze żądanie delivery, a nie model authority.

Referencja opcji jest w Artifact Delivery configuration HOWTO.

Jakich kształtów danych używa Artifact Delivery?

Główne publiczne kształty to artifact-delivery-envelope.v1, artifact-delivery-result.v1, artifact-delivery-status.v1, artifact-delivery-recovery.v1, deferred-operation.v1, deferred-operation-status.v1, artifact-object-pointer.v1, inac-control.v1 oraz domenowe artefakty takie jak agora-record.v1, contact-request.v1 czy memarium-blob.v1.

Linki do wygenerowanych schem i lokalnych kształtów daemon admission są w sekcji data shapes w Artifact Delivery HOWTO.

Jak Artifact Delivery podejmuje decyzje routingowe?

Routing zaczyna się od delivery/plan: referencji do hostowej trasy albo inline stages. Selektory odbiorców rozwiązywane są do konkretnych celów, polityka outbound jest sprawdzana względem rozwiniętego planu, a adapter scheme każdego celu wybiera transport. Ramki transportu przychodzącego wracają potem do wspólnej ścieżki AD admission przed trafieniem do jednego authoritative acceptora.

Szczegóły selektorów i przykłady sekwencyjne są w sekcji routingu w Artifact Delivery HOWTO.