Olaylar sırasında salt okunur mod: okumaları koruyun, yazmaları engelleyin
Olaylar sırasında salt okunur modun nasıl yazmaları engelleyip önemli okumaları koruduğunu ve veritabanınız stres altındayken UI'da nasıl net iletişim kuracağınızı öğrenin.

Veritabanı stres altındaysa önce ne bozulur?
Veritabanınız aşırı yüklendiğinde kullanıcılar nadiren temiz bir "kesinti" mesajı görür. Zaman aşımı yaşarlar, sayfalar yarım yüklenir, düğmeler sonsuza kadar döner ve bazı işlemler bazen çalışıp bazen başarısız olur. Bir kaydetme bir kerede başarılı olabilir, sonra bir dahaki sefer "Bir şeyler ters gitti." hatası verebilir. Bu belirsizlik olayları kaotik hissettirir.
Genellikle ilk bozulanlar yazma ağırlıklı yollar olur: kayıt düzenlemeler, ödeme/checkout akışları, form gönderimleri, arka plan güncellemeleri ve işlem (transaction) ve kilit gerektiren her şey. Stres altında yazmalar yavaşlar, birbirlerini bloke eder ve kilit tutarak okumaları da yavaşlatabilir.
Rastgele hatalar kontrollü bir sınırlamadan daha kötü hissedilir çünkü kullanıcılar ne yapacaklarını bilemezler. Tekrar dener, yeniler, tekrar tıklar ve daha fazla yük oluştururlar. Destek talepleri artar çünkü sistem "biraz çalışıyor gibi" görünür, ama kimse güvenemez.
Olaylar sırasında salt okunur modun amacı mükemmellik değil. Amaç en önemli parçaların kullanılabilir kalmasını sağlamak: temel kayıtları görüntülemek, arama yapmak, durumu kontrol etmek ve insanların işlerine devam etmeleri için gerekli dosyaları indirmek. Riskli eylemleri (yazmalar) bilinçli olarak durdurur veya ertelersiniz ki veritabanı toparlansın ve kalan okumalar yanıt verir durumda kalsın.
Beklentileri net koyun. Bu geçici bir sınırlamadır ve verinin silindiği anlamına gelmez. Çoğu durumda kullanıcının mevcut verisi hâlâ ordadır ve güvendedir — sistem sadece veritabanı sağlıklı olana dek değişiklikleri durdurur.
Salt okunur mod gerçekte ne demektir
Olaylar sırasında salt okunur mod, ürününüzün görüntüleme için kullanılabilir kaldığı ama veriyi değiştirecek her şeyi reddettiği geçici bir durumdur. Amaç basit: hizmeti yardımcı tutarken veritabanını gereksiz yükten korumak.
Açık söylemek gerekirse, insanlar hâlâ arama yapabilir ve kayıt açabilir ama yazma tetikleyen değişiklik yapamazlar. Genellikle sayfaları gezmek, aramak, filtrelemek ve kayıtları açmak çalışır. Formları kaydetmek, ayarları düzenlemek, yorum göndermek, dosya yüklemek veya yeni hesap oluşturmak engellenir.
Pratik bir bakışla: bir eylem bir satırı güncelliyorsa, bir satır oluşturuyorsa, bir satırı siliyorsa veya bir kuyruğa yazıyorsa izin yoktur. Birçok ekip ayrıca birincil veritabanına yazılan analitik olaylar, eşzamanlı yazılan denetim logları ve "son görülme" zaman damgaları gibi "gizli yazmaları" da engeller.
Salt okunur mod, okumalar hâlâ büyük ölçüde çalışıyorken ama yazma gecikmeleri yükseliyorsa, kilit çekişmesi artıyorsa veya yazma ağırlıklı işlerin birikmesi her şeyi yavaşlatıyorsa doğru seçenektir.
Temel okumalar bile zaman aşımına uğruyorsa, önbelleğiniz temel öğeleri sunamıyorsa veya sistem kullanıcılara güvenli ne yapılacağını söyleyemiyorsa tamamen çevrimdışına (offline) geçin.
Neden işe yarar: yazmalar genellikle basit bir okumadan çok daha maliyetlidir. Bir yazma indeksleri, kısıtları, kilitleri ve takip sorgularını tetikleyebilir. Yazmaları engellemek ayrıca başarısız kayıtları yeniden gönderen istemcilerin yarattığı tekrar deneme fırtınalarını da önler.
Örnek: bir CRM olayında kullanıcılar hâlâ hesapları arayabilir, iletişim detaylarını açabilir ve son fırsatları görüntüleyebilir ama Düzenle, Oluştur ve İçe Aktar eylemleri devre dışıdır ve herhangi bir kaydetme isteği hemen açık bir mesajla reddedilir.
Korumaya devam edilecek okumaları ve durdurulacak yazmaları seçin
Olaylar sırasında salt okunur moda geçtiğinizde amaç "her şey çalışsın" değildir. Amaç en önemli ekranların hâlâ yüklenmesi, ek veritabanı baskısı yaratan her şeyin hızlı ve güvenli şekilde durdurulmasıdır.
İlk olarak kötü bir günde bile çalışmaya devam etmesi gereken birkaç kullanıcı eylemini adlandırın. Bunlar genellikle kararları açan küçük okumalar olur: en son kaydı görüntüleme, bir durumu kontrol etme, kısa bir liste araması veya önbelleğe alınmış bir raporu indirme.
Sonra büyük zarar vermeden neleri duraklatabileceğinizi belirleyin. Çoğu yazma yolu olay sırasında "olsa iyi olur" kategorisindedir: düzenlemeler, toplu güncellemeler, içe aktarmalar, yorumlar, ekler, analitik olaylar ve ekstra sorgu tetikleyen her şey.
Kararı vermenin basit bir yolu eylemleri üç kovana ayırmaktır:
- Tutulmalı: kullanıcıyı hemen açığa kavuşturan küçük, hızlı okumalar
- Duraklatılabilir: yük ekleyen veya satırları kilitleyen yazmalar ve ağır okumalar
- Bozularak çalıştırılabilir: önbelleklenmiş veri veya kısmi görünüm gösterilebilen özellikler
Ayrıca bir zaman ufku belirleyin. Dakikalar bekliyorsanız hemen hemen tüm yazmaları sıkı şekilde engelleyebilirsiniz. Saatler bekliyorsanız çok sınırlı ve güvenli birkaç yazmaya (örneğin parola sıfırlama veya kritik durum güncellemeleri) izin verip geri kalanı kuyruğa almayı düşünebilirsiniz.
Öncelikte güvenliği tercih edin: tutarlılık eksik olmasındansa açık "değişiklikler duraklatıldı" mesajı göstermek daha iyidir. Yazmaya izin verip yarım kalan bir durum bırakmak veri tutarsızlığına yol açabilir.
Ne zaman açılacağına nasıl karar verilir
Salt okunura geçmek bir takastır: şimdi daha az özellik ama kullanılabilir bir ürün ve sağlıklı bir veritabanı. Amaç, kullanıcıların tekrar deneme, zaman aşımı ve takılı bağlantılar sarmalını tetiklemeden önce harekete geçmektir.
Bir cümlede açıklayabileceğiniz küçük bir sinyal setini izleyin. Aynı anda iki veya daha fazlası görünürse erken uyarı olarak değerlendirin:
- İsteklerin zaman aşımına uğraması veya belirgin bir gecikme eşiğini aşması (örneğin p95 300 ms'den 3 s'ye çıkması)
- Veritabanı CPU'sunun birkaç dakika boyunca yüksek takılı kalması, sadece kısa bir sıçrama değil
- Bağlantı havuzunun tükenmesi (hiç bağlantı kalmadığı için isteklerin kuyruğa alınması)
- Aynı birkaç sorgunun yavaş sorgu logunu doldurması
- Kilit beklemeleri, deadlock'lar veya başarısız işlemler nedeniyle artan hata oranı
Sadece metrikler tetikleyici olmamalıdır. İnsan kararını ekleyin: nöbetçi kişi bir olay durumu ilan eder ve salt okunuru açar. Bu baskı altındayken tartışmaları durdurur ve işlemin denetlenebilir olmasını sağlar.
Eşikleri hatırlaması ve iletmesi kolay yapın. "Veritabanı aşırı yüklendiği için yazmalar duraklatıldı" demek "doyuma ulaştık" demekten daha nettir. Ayrıca anahtarın kim tarafından çevrileceğini ve nerede kontrol edildiğini tanımlayın.
Modlar arasında dalgalanmayı (flapping) önleyin. Basit bir histerezis ekleyin: bir kez salt okunura geçtiğinizde minimum bir pencere için (örneğin 10-15 dakika) orada kalın ve yalnızca kilit sinyaller bir süre boyunca normale döndüğünde geri alın. Bu, kullanıcıların bir dakika çalışan formlar ve bir dakika sonra başarısız formlar görmesini engeller.
Adım adım: salt okunur modu güvenle açma
Olaylar sırasında salt okunur modu bir panik değişikliği değil, kontrollü bir değişiklik olarak ele alın. Amaç veritabanını yazarları durdurarak korumak ve en değerli okumaları açık tutmaktır.
Güvenli bir açılış sıralaması
Mümkünse, salt okunur yolunu anahtarı çevirmeden önce deploy edin. Böylece salt okunura geçmek sadece bir anahtar kapatma olur, canlı bir değişiklik değil.
- Tek bir olay anahtarı oluşturun (özellik bayrağı veya konfigürasyon ayarı) ve tüm sistemin bunu okumasını sağlayın. Global ve sade tutun:
READ_ONLY=true. Senkronizasyondan uzak olmak için birden fazla bayrak kullanmaktan kaçının. - UI'yı yazma girişimlerini önleyecek şekilde güncelleyin. Kaydet düğmelerini devre dışı bırakın, düzenleme formlarını gizleyin veya alanları salt metne çevirin. Veriyi göstermeye devam edin ki insanlar çalışmaya devam edebilsin (görüntüleme, arama, dışa aktarma).
- Sadece UI ile sınırlı kalmayın, sunucu tarafında zorlayın. Yazmaları tek bir yerde (middleware, controller guard veya servis katmanı) bloke edin ki tüm istemciler kapsansın: mobil uygulamalar, API kullanıcıları ve otomasyon dahil.
- Engellenen yazmalar için net, tutarlı bir hata döndürün. Ayrı bir durum kodu ve mesaj kullanın: "Sistem stabil hale gelene kadar düzenleme geçici olarak devre dışı. Verileriniz güvende. Daha sonra tekrar deneyin." Genel bir 500 dönüp veri kaybı izlenimi vermeyin.
- Her engellenen yazma denemesini loglayın. Kullanıcı, uç nokta ve eylem türünü kaydedin. Log yükünü ve hassas verileri azaltmak için yükü minimal tutun. Bu loglar UX boşluklarını bulmaya ve kritik eylemleri daha sonra yeniden oynatmaya yardımcı olur.
Tek küçük detay: tekrarı önleyen hız
Salt okunur aktifken veritabanına vurmadan önce hızlıca başarısız olun. Doğrulama sorguları çalıştırıp sonra yazmayı engellemeyin. En hızlı engellenen istek hiçbir zaman stres altındaki veritabanınıza dokunmayan istektir.
Kullanıcı arayüzü mesajları: kafa karışıklığını ve destek taleplerini azaltma
Salt okunur modu etkinleştirdiğinizde UI çözümün bir parçası olur. İnsanlar Kaydet'e tıklamaya devam edip muğlak hatalar alırsa tekrar dener, yeniler ve destek kaydı açarlar. Net mesajlaşma yükü ve kullanıcı sıkıntısını azaltır.
İyi bir desen uygulamanın en üstünde görünür, kalıcı bir banner kullanmaktır. Kısa ve gerçekçi tutun: ne oluyor, kullanıcılar ne beklemeli ve şimdi ne yapabilirler. Kaybolan toast'larda saklamayın.
Ne çalışıyor, ne durdu ve sırada ne var diye söyleyin
Kullanıcılar esas olarak çalışmaya devam edip edemeyeceklerini bilmek ister. Açık bir dil kullanın. Çoğu ürün için bu genelde:
- Çalışmaya devam ediyor: kayıt görüntüleme, arama, indirme, panoları okuma
- Duraklatıldı: oluşturma, düzenleme, silme, yüklemeler, ödemeler, mesaj gönderme
- Alternatif: önemli bilgiyi kopyalayın, görünümü dışa aktarın, daha sonra tekrar deneyin
- Güncellemeler: "Buraya 15 dakikada bir güncelleme yapacağız."
Basit bir durum etiketi de ilerlemeyi anlamaya yardımcı olur. "Araştırılıyor" neden aranıldığını gösterir. "Stabilize ediliyor" yükü azaltma ve veriyi koruma adımlarının alındığını belirtir. "Kurtarılıyor" yazmaların yakında döneceğini ama yavaş olabileceğini gösterir.
Tonu sakin ve spesifik tutun
"Bir şeyler ters gitti" veya "Yetkiniz yok" gibi suçlayıcı veya muğlak ifadeler kullanmaktan kaçının. Eğer bir düğme devre dışıysa etiketi şu şekilde olsun: "Sistem stabil hale gelene kadar düzenleme geçici olarak duraklatıldı."
Küçük bir örnek: bir CRM'de kişi ve fırsat sayfalarını okunur halde tutun ama Düzenle, Not Ekle ve Yeni Fırsat düğmelerini devre dışı bırakın. Birisi yine de yazma tetiklerse kısa bir diyalog gösterin: "Değişiklikler şu an duraklatıldı. Bu kaydı kopyalayabilir veya listeyi dışa aktarabilirsiniz, sonra tekrar deneyin."
Temel okumaları korurken yükü artırmamak
Salt okunur moda geçtiğinizde amaç "her şeyi görünür tutmak" değil, "insanların ihtiyaç duyduğu birkaç sayfayı tutmak" ve bunun veritabanına daha fazla yük bindirmemesini sağlamaktır.
En ağır ekranları budamaya başlayın. Çok filtreli uzun tablolar, birden fazla alanda serbest metin aramalar ve karmaşık sıralamalar genellikle yavaş sorgular tetikler. Salt okunur modda bu ekranları daha basit yapın: daha az filtre seçeneği, güvenli bir varsayılan sıralama ve sınırlı tarih aralığı koyun.
Önemli sayfalar için önbelleğe alınmış veya önceden hesaplanmış görünümleri tercih edin. Basit bir "hesap genel görünümü" önbellekten veya özet tablosundan okumak, ham olay kayıtlarını yüklemekten veya birçok tabloyu join etmekten genelde daha güvenlidir.
Okumaları canlı tutmanın pratik yolları:
- Daha küçük sayfa boyutları kullanın ve "tümü göster" seçeneğini kaldırın
- Karmaşık sıralamaları varsayılan bir düzene (örneğin "en yeni önde") değiştirin
- Analitik, öneriler ve etkinlik grafikleri gibi kritik olmayan okumaları erteleyin
- Ham geçmiş yerine önbelleğe alınmış özetleri tercih edin
- Çekirdek sayfaların yanıt vermesi için biraz eski veriyi kabul edin
Somut örnek: bir CRM olayında Kişiyi Görüntüle, Fırsat durumunu Görüntüle ve Son notu Görüntüle çalışsın. Gelişmiş arama, Gelir grafiği ve Tam e-posta zaman çizelgesini geçici olarak gizleyin ve verinin birkaç dakika eski olabileceğine dair not gösterin.
İşler, webhooklar ve entegrasyonlarla ne yapmalı
Salt okunur moda geçtiğinizde en büyük sürpriz genellikle UI değil; görünmez yazarlardır: arka plan işleri, zamanlı senkronizasyonlar, yönetici toplu işlemleri ve üçüncü taraf entegrasyonları veritabanını döver.
Kayıt oluşturan veya güncelleyen arka plan işlerini durdurmakla başlayın. Yaygın suçlular içe aktarmalar, gecelik senkronlar, teslimat logları yazan e-posta gönderimleri, analitik toplama işleri ve aynı başarısız güncellemeyi tekrar deneyen retry döngüleridir. Bunları duraklatmak baskıyı hızlıca azaltır ve ikinci bir yük dalgasını önler.
Güvenli bir varsayılan, yazma ağırlıklı işleri ve sonuçları kalıcı hale getiren kuyruk tüketicilerini duraklatmak veya yavaşlatmak, yönetici toplu eylemleri (toplu güncellemeler, toplu silmeler, büyük yeniden indekslemeler) devre dışı bırakmak ve zaman aşımına uğramaktansa yazma uç noktalarında hızlıca geçici bir hata döndürmektir.
Webhooklar ve entegrasyonlarda açıklık iyimserlikten iyidir. Bir webhook kabul edip işleyemiyorsanız, uyuşmazlıklar ve destek yükü yaratırsınız. Yazmalar duraklatıldığında göndericiye daha sonra tekrar denemesi için geçici bir hata döndürün ve UI mesajlarınızın arka planda yaptıklarınızla uyuştuğundan emin olun.
"Sonra kuyruğa al" yaklaşımına dikkat edin. Kulağa nazik geliyor ama yazmaları tekrar açtığınız anda kuyruk sisteminizi boğabilir. Kullanıcı yazmalarını ancak idempotent olduklarını garanti edebiliyorsanız, kuyruk boyutunu sınırlandırabiliyorsanız ve kullanıcıya gerçek durumu (beklemede vs kaydedildi) gösterebiliyorsanız bufferlayın.
Son olarak, ürününüzdeki gizli toplu yazıcıları denetleyin. Bir otomasyon binlerce satır güncelleyebiliyorsa, uygulama hâlâ yüklense bile read-only modunda kapatılmalıdır.
Olayları daha kötü yapan yaygın hatalar
En hızlı kötüleşme yolu salt okunur modu kozmetik bir değişiklik olarak görmekten geçer. Sadece UI'daki düğmeleri devre dışı bırakırsanız, API'ler, eski sekmeler, mobil uygulamalar ve arka plan işler hâlâ yazabilir. Veritabanı baskı altında kalır ve ayrıca kullanıcılar bir yerde "kaydedildi" bir yerde eksik değişiklik görür, böylece güven kaybolur.
Gerçek bir olay sırasında salt okunur modun kuralı net olmalıdır: sunucu her istemci için her zaman yazmaları reddeder.
Dikkat edilmesi gereken hatalar
Aşırı yük altında şu kalıplar sıkça tekrar eder:
- Sadece UI'da düzenlemeleri engellemek ama sunucunun hâlâ POST, PUT, PATCH ve DELETE kabul etmesi
- Gizli yolları unutmak: yönetici panelleri, iç araçlar, import uç noktaları ve entegrasyonlar tarafından kullanılan genel API'ler
- Sistem normal ve read-only arasında her dakika dalgalanması
- "Bir şeyler ters gitti" gibi muğlak mesajlar göstermek
- Kısmi yazmalara izin verip veri tutarsızlığına yol açmak
Bunlardan nasıl kaçınılır
Sistemi öngörülebilir davranacak şekilde yapılandırın. Sunucu tarafında tek bir anahtar uygulayın ve yazmaları aynı açık yanıtla reddedin. Bir soğuma (cooldown) ekleyin: bir kez read-only'a geçince belirli bir süre (örneğin 10-15 dakika) orada kalın, operatör değiştirmedikçe geri almayın.
Veri bütünlüğünde katı olun. Bir yazma tamamen tamamlanamıyorsa tüm işlemi başarısız sayın ve kullanıcıya bir sonraki adımı söyleyin. Basit bir mesaj: "Read-only modu: görüntüleme çalışıyor, değişiklikler duraklatıldı. Daha sonra tekrar deneyin." tekrar denemeleri azaltır.
Olay öncesi ve sırasında hızlı kontroller
Salt okunur mod ancak kolayca açılıp her yerde aynı şekilde davranırsa işe yarar. Sorun başlamadan önce bir destek anahtarınız (özellik bayrağı, konfig, admin anahtarı) olduğundan emin olun; nöbetçi birkaç saniyede bunu açabilmeli, deploy gerekmemeli.
Veritabanı aşırı yüklenmesinden şüphelendiğinizde hızlı bir kontrol yapın:
- Anahtarı güvenli bir ortamda çevirin ve hemen etkisini doğrulayın
- Birkaç yazma eylemine (kaydet, sil, içe aktar) vurun ve her yazma uç noktasının aynı engellenmiş yanıt ve durum kodunu döndürdüğünü doğrulayın
- Banner metninin hazır, kısa ve en çok kullanılan ekranlarda görünür olduğundan emin olun
- En önemli 3 sayfanızı (örneğin: giriş, pano, kayıt görünümü) yükleyin ve stres altında hâlâ render olduklarını kontrol edin
- Destek ekibinin neyin çalıştığını, neyin durduğunu ve güncellemelerin nerede yayınlanacağını tek paragraflık bir betimle bildiğinden emin olun
Olay sırasında, sadece panoları izleyen değil kullanıcı deneyimini doğrulamaya odaklanan bir kişi olsun. Gizli banner'lar, kırık formlar veya sonsuz dönen spinner'lar gibi sorunları yakalamak için hızlı bir spot kontrol (incognito pencerede) işe yarar.
Açmadan önce çıkışı planlayın. "Sağlıklı" kelimesinin ne anlama geldiğini (latency, hata oranı, çoğaltma gecikmesi) belirleyin ve geri alırken kısa bir doğrulama yapın: bir test kaydı oluşturun, düzenleyin ve sayımlar ile son etkinliklerin doğru göründüğünü doğrulayın.
Örnek olay: CRM'i düzenlemeler dururken kullanılabilir tutmak
Saat 10:20. CRM yavaş, veritabanı CPU'su takılı. Destek talepleri geliyor: kullanıcılar kişileri ve fırsatları kaydedemiyor. Ama ekip hâlâ telefon aramaları için telefon numaralarına bakmak, fırsat aşamalarını görmek ve son notları okumak istiyor.
Basit bir kural seçiyorsunuz: yazma yapan her şeyi dondur, en değerli okumaları tut. Pratikte kişi araması, kişi detay sayfaları ve fırsat hattı görünümü açık kalır. Kişi düzenleme, yeni fırsat oluşturma, not ekleme ve içe aktarmalar bloke edilir.
UI'da değişiklik belirgin ve sakin olmalı. Düzenleme ekranlarında Kaydet düğmesi devre dışı ve form görünür kalmalı ki insanlar yazdıklarını kopyalayabilsin. Üstteki banner şöyle der: "Yük yüksek olduğu için salt okunur mod açık. Görüntüleme mevcut. Değişiklikler duraklatıldı. Lütfen daha sonra tekrar deneyin." Bir kullanıcı yine yazma tetiklerse (örneğin bir API çağrısı ile) açık bir mesaj döndürün ve veritabanını vuran otomatik yeniden denemelerden kaçının.
Operasyonel olarak akışı kısa ve tekrarlanabilir tutun. Read-only'u etkinleştirin ve tüm yazma uç noktalarının bunu uyguladığını doğrulayın. Yazma yapan arka plan işleri (senkronlar, içe aktarmalar, e-posta loglama, analitik geri doldurma) duraklatın. Webhookları ve entegrasyonları yavaşlatın veya duraklatın. Veritabanı yükünü, hata oranını ve yavaş sorguları izleyin. Nelerin etkilendiğini (düzenlemeler) ve nelerin çalıştığını (arama ve görüntülemeler) içeren bir durum güncellemesi yayınlayın.
Kurtarma sadece anahtarı açmak değildir. Yazmaları kademeli olarak geri açın, başarısız kaydetme loglarını kontrol edin ve kuyruklanan işler tarafından oluşturulacak yazma fırtınasına karşı izleyin. Sonra net bir iletişim yapın: "Read-only modu kapatıldı. Kaydetme geri yüklendi. 10:20–10:55 arasında kaydetmeyi denediyseniz lütfen son değişikliklerinizi kontrol edin." gibi.
Sonraki adımlar: salt okunur modu playbook'unuzun parçası yapın
Olaylar sırasında salt okunur mod en iyi şekliyle sıradan ve tekrarlanabilir olduğunda çalışır. Amaç kısa bir senaryoyu sahiplenmek, net sahipler ve kontrollerle uygulamaktır.
Küçük, kullanılabilir bir playbook hazırlayın
Bir sayfada tutun. Tetikleyicilerinizi (salt okunura geçmeyi haklı çıkaran birkaç sinyal), çevireceğiniz tam anahtarı ve yazmaların engellendiğini nasıl doğrulayacağınızı, çalışmaya devam etmesi gereken temel okumaların kısa listesini, net rollerleri (anahtarı kim çevirir, metrikleri kim izler, destek kimle konuşur) ve çıkış kriterlerini (yazmaları tekrar açmadan önce nelerin doğru olması gerektiği ve kuyrukların nasıl boşaltılacağı) ekleyin.
UI metnini önceden hazırlayın
Metni şimdi yazın ve onaylayın ki bir kesinti sırasında kelime tartışmalarına vakit kaybetmeyin. Basit bir set çoğu durumu kapsar:
- Banner: "Performansı geri getirirken salt okunur moddayız. Veriyi görüntüleyebilirsiniz, ancak değişiklikler geçici olarak devre dışı."
- Engellenen eylemlerde: "Kaydetme şu an duraklatıldı. Değişiklikleriniz uygulanmadı. Lütfen birkaç dakika sonra tekrar deneyin."
- Durum detayı: "Son güncelleme HH:MM. Bir sonraki güncelleme 10 dakika içinde."
Anahtarı staging'de prova edin ve zamanlayın. Destek ve nöbet ekibinin anahtarı hızlıca bulabildiğinden ve logların engellenen yazmaları açıkça gösterdiğinden emin olun. Her olay sonrası gerçekten kritik olan okumaları, iyi olur kategorisindekileri ve yanlışlıkla yük oluşturanları gözden geçirin ve kontrol listesini güncelleyin.
Eğer Koder.ai (koder.ai) üzerinde ürün geliştiriyorsanız, salt okunuru oluşturduğunuz uygulamada ilk sınıf bir anahtar olarak ele almak faydalı olabilir; böylece UI ve sunucu tarafı yazma korumaları ihtiyaç duyduğunuzda tutarlı kalır.
SSS
What usually breaks first when the database is overloaded?
Genellikle yazma yolları önce bozulur: kayıtlar, düzenlemeler, ödeme akışları, içe aktarmalar ve işlem gerektiren her şey. Yük altında kilitler ve yavaş onaylar yazmaları birbirine bağlar, bu da okuma işlemlerini de yavaşlatabilir.
Why do random errors feel worse than a clear outage?
Çünkü belirsizdir. Bazı işlemler çalışırken bazıları başarısız oluyorsa kullanıcılar tekrar dener, sayfayı yeniler ve daha fazla istek gönderebilir; bu da yükü artırır ve daha fazla zaman aşımına yol açar.
What does “read-only mode” actually mean?
Bu, ürünün veri görüntüleme açısından kullanışlı kalıp değişiklikleri reddettiği geçici bir durumdur. İnsanlar göz atabilir, arama yapabilir ve kayıtları açabilir ama veri oluşturma, güncelleme veya silme işlemleri bloke edilir.
What should be blocked in read-only mode besides obvious edits?
Birincil veritabanına yazan her eylemi engellemeyi varsayarak davranın; bunun içine denetim kayıtları, son görülme zamanları ve veritabanında tutulan analitik olayları gibi "gizli yazmalar" da girer. Bir satırı değiştiriyorsa veya daha sonra yazacak bir kuyruk ekliyorsa, bunu yazma olarak kabul edin.
When should we switch to read-only mode?
Zaman aşımları, p95 gecikmesinde ani sıçramalar, kilit beklemeleri, bağlantı havuzu tükenmesi veya tekrar eden yavaş sorgular gibi yazmaların kontrolden çıktığına işaret eden erken belirtiler gördüğünüzde açın. Kullanıcıların tekrar deneme fırtınası başlatmasından önce geçmek daha iyidir.
How do we implement read-only mode safely without missing some paths?
Tek bir global anahtar kullanın ve sunucunun bunu uyguladığından emin olun; sadece UI'da engelleme yapmak yeterli değildir. UI yazma işlemlerini devre dışı bırakmalı ama her yazma uç noktası veritabanına ulaşmadan önce hızlıca başarısız olmalıdır.
What should the UI say so users don’t panic or spam retries?
Sürekli, kalıcı bir üst bilgi bandı gösterin: ne olduğunu, nelerin çalıştığını ve nelerin durdurulduğunu sade bir dille yazın. Engellenen eylemler açıkça belirtilmeli ki kullanıcılar tekrar tekrar denemeyip destek talebi açmasınlar.
How do we keep key reads working without making the load worse?
İnsanların güvendiği birkaç temel sayfayı açık tutun ve ağır sorgu tetikleyenleri sadeleştirin. Önbelleğe alınmış özetleri tercih edin, sayfa boyutlarını küçültün, güvenli sıralama kullanın ve biraz eski veriyi kabul edin ama temel sayfaların yanıt vermesini sağlayın.
What should we do about background jobs, webhooks, and integrations during read-only?
Yazma yapan arka plan işleri, senkronizasyonlar, içe aktarmalar ve kuyruk tüketicilerini duraklatın veya sınırlandırın. Webhooklar için çalışmayı kabul edip işleyemiyorsanız, geçici hata döndürün ki gönderici daha sonra tekrar denesin; sessiz uyumsuzluklar oluşmasın.
What are the most common read-only mode mistakes during incidents?
Sadece UI'daki düğmeleri devre dışı bırakmak büyük hatadır; API'ler, mobil istemciler ve eski sekmeler hâlâ yazabilir. Ayrıca modlar arasında sık geçiş yapmak (flapping) sorun yaratır; minimum bir süre read-only kalın ve metrikler normale dönene kadar geri almayın.
How do we avoid the common mistakes?
Sunucu tarafında tek bir anahtarla yazmaları reddedin ve tüm istemciler için tutarlı bir yanıt döndürün. Read-only moddayken, tam olarak gerçekleştiremeyeceğiniz bir yazmaya izin vermeyin; işlem tamamlanamazsa tüm işlemi başarısız sayıp kullanıcıya ne yapacağını söyleyin.