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

Göçler, Pactmark göç yöneticisi üzerinden sıralı ve ileri yönde uygulanır. Onun sahip olduğu şema nesnelerini elle düzenlemeyin.
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.
Korumalı bağlam yürütmeyi ve devam etmeyi destekler. Bir denetim kaydı değildir ve yalnızca kabul edilmiş, amaca bağlı bağlam içerebilir. Onu genel amaçlı bir anahtar-değer deposu olarak kullanmayın.

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.