Marten 9.52.0: projeksiyon başlangıç tabanları ve ExceptionTransforms
Marten 9.52.0, PostgreSQL üzerinde çalışan .NET doküman ve olay deposu için yeni bir şema tablosu, yeni bir istisna dönüşüm seçeneği ve tenant silme düzeltmeleri getiriyor. Yükseltmeden önce şema geçişinin nasıl etkileyeceğini bilmek isteyen her Marten kullanıcısı için önemli.
Kilit noktalar
- Yeni mt_event_projection_floors tablosu, bir sonraki schema uygulamasında her olay deposu için otomatik oluşturuluyor.
- AsyncOptions.SubscribeFromFirstRun() projeksiyon başlangıç tabanlarını bu tabloya dayandırıyor.
- StoreOptions.Advanced.ExceptionTransforms ile kendi SQLSTATE kodlarınızı tipli istisnalara eşleyebilirsiniz.
- UndeleteDocumentAsync ile soft-delete edilmiş dokümanlar geri alınabiliyor.
- Kalıcı veritabanı hataları artık ShardFailureCategory.ApplyEvent ile olayın adını raporluyor; dead-letter'a alınmıyorlar.
- UseTenantPartitionedEvents altında tenant silme sırasında oluşan 23503 hataları düzeltildi.
Marten 9.52.0, JasperFx 2.93.1 üzerine kurulu olarak yayımlandı. En önemli şema değişikliği, her olay deposunun bir sonraki uygulamada migration olarak alacağı mt_event_projection_floors tablosu. Bu tablo, yeni AsyncOptions.SubscribeFromFirstRun() seçeneğinin kullandığı projeksiyon başlangıç tabanlarını saklıyor. Şeması henüz güncellenmemiş veritabanları projeksiyonlarını eskisi gibi başlatmaya devam ediyor.
Sürümle birlikte StoreOptions.Advanced.ExceptionTransforms geldi; uygulamalar kendi SQLSTATE kodlarını tipli istisnalara çevirebiliyor ve bu dönüşümler Marten'ın yerleşik olanlarından önce çalışıyor. UndeleteDocumentAsync ile silinmiş bir doküman geri alınabiliyor. Projeksiyon kodunda oluşan kalıcı veritabanı hataları artık paused shard raporunda olayın adıyla görünüyor. UseTenantPartitionedEvents altında tenant silinirken oluşan hatalar da düzeltildi.
Gerçek dünyada kullanımı
- Birden fazla tenant'ı partition ile ayıran, olay tabanlı bir SaaS uygulaması
- Veritabanı hatalarını tipli istisnalarla yakalamak isteyen, PostgreSQL kullanan bir servis
- Silinmiş dokümanları yönetici panelinden geri almak isteyen bir CritterWatch tabanlı izleme aracı
Neden önemli
Marten'ı kullanan ekipler, yükseltmeden önce yeni tabloyu ve şema migration'ını test veritabanında doğrulamalı. Tenant silme hataları düzeldiği için partitioned yapı kullanan projeler de bu sürümden fayda sağlar.