Uyumluluk: Node 22.14+ ve 24.x üzerinde Pactmark 0.2.x. Referans OCI imajı yerelde derlenebilirdir; ne yayımlanmıştır ne de üretim için sertifikalıdır.

HTTP köprüsü

@pactmark/node, Web standardı bir işleyiciyi node:http’ye köprüler, yanıtları tamponlamadan akıtır ve istemci kopmalarını bir AbortSignal olarak yayar.
server.ts
installGracefulShutdown bir kaldırıcı döndürür. SIGTERM alındığında yeni bağlantı kabul etmeyi bırakır, devam eden isteklere timeoutMs kadar süre tanır ve kalan bağlantıları kapatır. Koşu gerçeği depoda olduğu için kapanan bir bağlantı kayıp iş anlamına gelmez.

Sağlık ve hazırlık

readyz’i orkestratörünüzün readiness probe’una, healthz’i liveness’a bağlayın. Hazırlığı liveness’a bağlamayın — dürüstçe hazır-değil bildiren bir çalışma zamanı öldürülüp aynı duruma yeniden başlatılmak yerine rotasyondan çıkarılmalıdır.

Worker’ı ayrı çalıştırma

Şekil 1. Worker, farklı yaşam döngüsü olan farklı bir süreçtir. “Farklı süreç”i güvenli kılan şey fenced kiralardır.
worker.ts
Worker döngüsünü “şimdilik” HTTP sürecinizin içinde çalıştırmayın. Web katmanını ölçeklediğiniz anda, hiç düşünmeden N tane yarışan worker’ınız olur — fenced kiralar bunu doğru şekilde ele alır ama veritabanı yükünüz almaz.

Referans konteyner fixture’ı

OCI uygunluk fixture’ı, kasıtlı olarak düşmanca yapılandırılmış bir test artefaktıdır: Traversal, symlink, sır, soket, loopback, metadata, fork, döngü ve çıktı sondalarını çalıştırır.
Bu kontroller çekirdek, çalışma zamanı, konteyner motoru, yan kanal veya çok kiracılı saldırılara karşı direnci kanıtlamaz. Fixture üretimde rastgele kod izolasyonu değildir — bkz. Sandbox sınırı.

Dağıtım biçimi

docker-compose.yml
API ve worker bir veritabanını paylaşır, başka hiçbir şeyi paylaşmaz. Amaç da budur.

Sonlanma ve kurtarma

1

İş kabul etmeyi bırakın

Hazırlık false olur; yük dengeleyici boşaltır.
2

Kiraları bırakın veya süresinin dolmasına izin verin

Kapanışta temizce bırakın ya da süresi dolsun. Fencing sayesinde ikisi de güvenlidir.
3

Kalıcı olaylardan devam edin

Sonraki bir süreç depodan yeniden kurar. Hiçbir şey eski sürecin belleğine bağlı değildir.
4

Belirsiz bir etkiyi asla tekrarlamayın

Kayıtlı stratejisi yeniden denemenin güvenli olduğunu kanıtlamadıkça. Bir süreci yeniden başlatmak, dış sistem hakkında yeni bir bilgi değildir.

PostgreSQL profili

Göçler, TLS, korumalı bağlam ve yedekler.

Güvenilirlik ve kurtarma

RPO/RTO ve park edilmiş işlerin izlenmesi.