Uyumluluk: Pactmark 0.2.x. Yerel kanıt, göçleri, eşzamanlılığı, TLS’i ve çökme/devam
senaryolarını kapsayan tek kullanımlık PostgreSQL 17 kullanır.
Neden gerekir
Bellek deposu deterministik, tenant kapsamlı ve geçicidir. Testler için mükemmel, üretim için diskalifiyedir. Hazırlık kontrolü bunu size söyler:Kurulum
1
Sıralı göçleri uygulayın
2
En az ayrıcalıklı bir rol kullanın
Uygulama rolüne yalnızca kullandığı tablolar gerekir. Üretimde
CREATE yetkisine ihtiyacı yoktur;
superuser’a hiç yoktur.3
Hostname doğrulamalı TLS zorunlu kılın
sslmode=require değil — doğrulama. Doğrulanmamış bir TLS bağlantısı hiçbir şeyin kimliğini
doğrulamaz.4
Worker'ı ayrı işletin
Kalıcı worker kendi yaşam döngüsü olan ayrı bir süreçtir. Onu bir istek işleyicisinin içinde
çalıştırmak, Postgres’e geçerek kaldırdığınız bağımlılığı geri getirir.
Şemanın garanti ettikleri
Her yolda tenant kimliği
Her depolama metodu tenant kimliği alır ve negatif testler tenant’lar arası okuma ve mutasyonları
kapsar.
Yalnızca-eklenen olaylar
Olaylar gerçektir. Projeksiyonlar kendi yetkisi olmayan yeniden kurulabilir önbelleklerdir.
Atomik komut birimleri
Idempotency kayıtları, yetki, olaylar, rezervasyonlar ve uyandırmalar birlikte commit olur ya da
hiç olmaz.
İyimser olay sıralaması
Eşzamanlı eklemeler sessizce iç içe geçmek yerine
KAF_RUNTIME_EVENT_SEQUENCE ile çakışır.Fenced kiralar
Şekil 1. Kiralar uygulama zamanını değil veritabanı zamanını kullanır. Saati kaymış bir worker kendi sahipliğini uzatamaz ve geri dönen bir zombi daha yeni bir fence’in üzerine commit edemez. Worker, uyandırmaları veritabanı-zamanlı kiralar ve fencing token’larla sahiplenir. Saat-kayması testleri vardır, çünkü “sunucumun saati iyidir” gece üçte başarısız olan varsayımdır.Korumalı bağlam
Devam ettirilebilir bağlam, koşu gerçeğinden ayrı saklanır; tenant kapsamlı ve amaca bağlıdır. Büyük korumalı referanslar, teklik için sınırlı kimlik doğrulamalı özetler kullanırken okuma doğrulaması için şifreli metni korur — böylece bir teklik indeksi bir düz metin kâhinine dönüşmez.Yedekler: bunları birlikte yedekleyin
Bir alt kümeyi yedeklemek, üzerinde akıl yürütülemeyen bir geri yükleme üretir. Tutarlı tek bir küme olarak alın:- olaylar
- iş emirleri
- komut kayıtları
- etki defterleri
- artifact’lar
- korumalı depolar
- göç durumu
Sonra gerçekten geri yükleyin. Bir RPO veya RTO sayısı atamadan önce temsili bir yükseltmeyi,
bir projeksiyon yeniden kurulumunu, bir geri alma planını, bir yedek geri yüklemesini ve eski koşu
incelemesini test edin.
İzleme
Aktif ve park edilmiş işleri izleyin. Yalnızca devam eden koşuları gösteren bir panel, arkasında
çözülmemiş etkilerden oluşan bir kuyruk büyürken sistemi sağlıklı gösterir.
Güvenmeden önce ne test edilmeli
Güvenilirlik ve kurtarma
RPO/RTO, belirsiz etkiler ve yerel çökme testlerinin kanıtlamadıkları.
Node ve konteyner
HTTP köprüsünü kalıcı worker’ın yanında çalıştırmak.