Hacker DirectoryHacker Directory
Öğrenmeye devam et
ENHTML kaydet ↓

WEB / WEB-21.S03

Resource limits, errors ve fail-open boundaries

Resource budget, permission ve partial failure kanıtını ayrı tut.

CORE · RED · BLUE · ARTIFACT · PRACTICE

1. Core · Mekanizma

Hareket olmadan bütün senaryoları oku

Read izinli

  1. Read request hazır

    Reader Tea & Bread public title’ı için read request hazırlamıştır. Admission henüz permission, byte budget, concurrency ve deadline değerlendirmedi; store’a read veya write gönderilmedi.

    Reader
    Fixed note read request ready
    Admission / errors
    Admission pending; no reservation/dispatch
    Public note store
    Own public note unchanged; no read/write
  2. Request gate’e geldi

    Admission completed request arrival’ını görür; body size, permission, concurrency ve deadline ayrı koşullardır.

    Reader
    Fixed note read request ready
    Admission / errors
    Read arrived; size/permission/quota/deadline pending
    Public note store
    Own public note unchanged; no read/write
  3. Admission allow

    Finite size, known permission, available quota ve deadline kabul edilir; local reservation sonrası read hazırlanır.

    Reader
    Fixed note read request ready
    Admission / errors
    Permission/budget accepted; reserved; read ready
    Public note store
    Own public note unchanged; no read/write
  4. Approved read geldi

    Store completed approved read arrival’ını kaydeder; sadece read-only projection yapacağı selected profile’dır.

    Reader
    Fixed note read request ready
    Admission / errors
    Permission/budget accepted; reserved; read ready
    Public note store
    Approved read received; projection pending
  5. Title projection hazır

    Store fixed Tea & Bread title’ı local read-only adımda hazırlar; no write sonucu bu operasyonun scope’ıdır.

    Reader
    Fixed note read request ready
    Admission / errors
    Permission/budget accepted; reserved; read ready
    Public note store
    Tea & Bread title body ready; write=false
  6. Body gate’e geldi

    Completed body arrival gate’e ulaşır; reservation cleanup ve safe client projection sonraki local adımda yapılır.

    Reader
    Fixed note read request ready
    Admission / errors
    Title body received; cleanup pending
    Public note store
    Tea & Bread title body ready; write=false
  7. Cleanup ve response

    Local reservation release edilir ve public title response hazırlanır; distributed counter veya crash recovery testi değildir.

    Reader
    Fixed note read request ready
    Admission / errors
    Reservation released; title response ready
    Public note store
    Tea & Bread title body ready; write=false
  8. Read result teslimi

    Reader completed response arrival’da title alır; actual HTTP status, resource isolation ve throughput kanıtı yoktur.

    Reader
    Received title=Tea & Bread; read-only result
    Admission / errors
    Reservation released; title response ready
    Public note store
    Tea & Bread title body ready; write=false

Quota dolu

  1. Read request hazır

    Reader Tea & Bread public title’ı için read request hazırlamıştır. Admission henüz permission, byte budget, concurrency ve deadline değerlendirmedi; store’a read veya write gönderilmedi.

    Reader
    Fixed note read request ready
    Admission / errors
    Admission pending; no reservation/dispatch
    Public note store
    Own public note unchanged; no read/write
  2. Request gate’e geldi

    Admission completed request arrival’ını görür; body size, permission, concurrency ve deadline ayrı koşullardır.

    Reader
    Fixed note read request ready
    Admission / errors
    Read arrived; size/permission/quota/deadline pending
    Public note store
    Own public note unchanged; no read/write
  3. Gate evidence ayrıldı

    Finite predicate gerekli koşulları ayrı değerlendirir; unknown permission’a spare quota nedeniyle izin verilmez.

    Reader
    Fixed note read request ready
    Admission / errors
    Known quota full; no reservation
    Public note store
    Own public note unchanged; no read/write
  4. Dispatch withheld

    Pre-dispatch denial store’u untouched bırakır; body ve write yokluğu bu selected state order’dan çıkar.

    Reader
    Fixed note read request ready
    Admission / errors
    Dispatch=0; delivery=0; body absent; write=false
    Public note store
    Own public note unchanged; no read/write
  5. Safe error hazır

    Safe client diagnostic hazırlanır; stack dump, secret veya internal path bu response içine girmez.

    Reader
    Fixed note read request ready
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write
  6. Safe error alındı

    Reader completed error arrival’ını görür; pre-dispatch evidence sonradan unknown commit iddiasıyla karıştırılmaz.

    Reader
    Error received; protected body absent; no read/write
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write
  7. Evidence scope sonucu

    Reader local diagnostic’i yorumlar; genel response-lost write senaryosu ayrı ledger’da unknown olarak kalır.

    Reader
    No dispatch/delivery/body/write; cause retained
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write

Permission eksik

  1. Read request hazır

    Reader Tea & Bread public title’ı için read request hazırlamıştır. Admission henüz permission, byte budget, concurrency ve deadline değerlendirmedi; store’a read veya write gönderilmedi.

    Reader
    Fixed note read request ready
    Admission / errors
    Admission pending; no reservation/dispatch
    Public note store
    Own public note unchanged; no read/write
  2. Request gate’e geldi

    Admission completed request arrival’ını görür; body size, permission, concurrency ve deadline ayrı koşullardır.

    Reader
    Fixed note read request ready
    Admission / errors
    Read arrived; size/permission/quota/deadline pending
    Public note store
    Own public note unchanged; no read/write
  3. Gate evidence ayrıldı

    Finite predicate gerekli koşulları ayrı değerlendirir; unknown permission’a spare quota nedeniyle izin verilmez.

    Reader
    Fixed note read request ready
    Admission / errors
    Permission evidence unknown; no allow
    Public note store
    Own public note unchanged; no read/write
  4. Dispatch withheld

    Pre-dispatch denial store’u untouched bırakır; body ve write yokluğu bu selected state order’dan çıkar.

    Reader
    Fixed note read request ready
    Admission / errors
    Dispatch=0; delivery=0; body absent; write=false
    Public note store
    Own public note unchanged; no read/write
  5. Safe error hazır

    Safe client diagnostic hazırlanır; stack dump, secret veya internal path bu response içine girmez.

    Reader
    Fixed note read request ready
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write
  6. Safe error alındı

    Reader completed error arrival’ını görür; pre-dispatch evidence sonradan unknown commit iddiasıyla karıştırılmaz.

    Reader
    Error received; protected body absent; no read/write
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write
  7. Evidence scope sonucu

    Reader local diagnostic’i yorumlar; genel response-lost write senaryosu ayrı ledger’da unknown olarak kalır.

    Reader
    No dispatch/delivery/body/write; cause retained
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write

Deadline doldu

  1. Read request hazır

    Reader Tea & Bread public title’ı için read request hazırlamıştır. Admission henüz permission, byte budget, concurrency ve deadline değerlendirmedi; store’a read veya write gönderilmedi.

    Reader
    Fixed note read request ready
    Admission / errors
    Admission pending; no reservation/dispatch
    Public note store
    Own public note unchanged; no read/write
  2. Request gate’e geldi

    Admission completed request arrival’ını görür; body size, permission, concurrency ve deadline ayrı koşullardır.

    Reader
    Fixed note read request ready
    Admission / errors
    Read arrived; size/permission/quota/deadline pending
    Public note store
    Own public note unchanged; no read/write
  3. Gate evidence ayrıldı

    Finite predicate gerekli koşulları ayrı değerlendirir; unknown permission’a spare quota nedeniyle izin verilmez.

    Reader
    Fixed note read request ready
    Admission / errors
    now=deadline; pre-dispatch deadline denied
    Public note store
    Own public note unchanged; no read/write
  4. Dispatch withheld

    Pre-dispatch denial store’u untouched bırakır; body ve write yokluğu bu selected state order’dan çıkar.

    Reader
    Fixed note read request ready
    Admission / errors
    Dispatch=0; delivery=0; body absent; write=false
    Public note store
    Own public note unchanged; no read/write
  5. Safe error hazır

    Safe client diagnostic hazırlanır; stack dump, secret veya internal path bu response içine girmez.

    Reader
    Fixed note read request ready
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write
  6. Safe error alındı

    Reader completed error arrival’ını görür; pre-dispatch evidence sonradan unknown commit iddiasıyla karıştırılmaz.

    Reader
    Error received; protected body absent; no read/write
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write
  7. Evidence scope sonucu

    Reader local diagnostic’i yorumlar; genel response-lost write senaryosu ayrı ledger’da unknown olarak kalır.

    Reader
    No dispatch/delivery/body/write; cause retained
    Admission / errors
    Safe error response ready; protected body absent
    Public note store
    Own public note unchanged; no read/write

ROLLER · STATE · VERİ AKIŞI

Quota ile permission birbirinin yerine geçmez

Resource policy request size, concurrency, work budget, deadline ve queue sınırları gibi farklı koşullar içerir. Rate limit belirli zaman penceresindeki sıklığı sınırlar; tek pahalı operation’ın memory veya fan-out’unu tek başına kontrol etmez. Atlas Notları public title read için maxConcurrent=2, maxBytes=64 ve deadlineTick=10 kullanır. Bunlar örnek değerleridir, gerçek capacity ölçümü değildir. Permission’ın bilinmesi ve verilmesi quota gate’inden ayrıdır. İzinli actor quota doluyken read başlatamaz; boş quota da unknown permission’a izin vermez. Ucuz size/shape kontrolünü pahalı işten önce yapmak yararlı sınırdır, OS/container isolation kanıtı değildir. Sahne gate tamamlanmadan store’a dispatch yapmaz. Başarı read-only title projection’dır; store mutation veya write modellenmez.

Deadline, cancellation ve partial failure

Deadline caller’ın artık beklemeyeceğini belirleyebilir; downstream işin kesin durduğu veya side effect’in geri alındığı anlamına gelmez. Bu model admission’ı deadline’dan önce kontrol ettiğinden expired dalı store’a ulaşmaz. Daha önce dispatch edilmiş write için response kaybı farklıdır: sonuç unknown kalabilir ve koşulsuz retry aynı action’ı yeniden uygulayabilir. Artifact bu genel durumu ayrı partial-failure tablosunda tutar; read-only ret dallarıyla karıştırmaz. Cancellation propagation, transaction commit ve idempotency kapsamı gerçek integration evidence ister. Yerel quota reservation normal sonuçta veya exception sonrası finally ile bırakılır. Bu local counter davranışı ölçülebilir; process crash, distributed lease ve yük altında autoscaling doğrulanmış sayılmaz.

Error formatı ile evidence scope’ı

Error handling client’a anlaşılır status ve sınırlı açıklama verirken server diagnostic’i erişim kontrollü tutar. Stack dump, secret veya internal path client body’sine eklenmez. RFC 9457 problem details, troubleshooting için sınırlı açıklama formatı sunar ve RFC 7807’nin yerini alır. Defter typed decision code kullanır; gerçek HTTP response üretmez. 429 rate limiting’i anlatır ve Retry-After isteğe bağlıdır. Her concurrency exhaustion’ın mutlaka 429 olması veya retry’ın kesin başarılı olması sonucu çıkarılmaz. Permission unknown, known deny, deadline ve quota-full farklı internal nedenlerdir. Sade client mesajı telemetry’nin bütün nedenleri tek error altında toplamasını gerektirmez. Dispatch edilen action, recipient ve commit evidence ayrı izlenir.

Graceful degradation’ın yetki sınırı

Dependency hatasında sistemin tamamen durmaması yararlı olabilir; permission service’e ulaşılamamasını allow’a çevirmek ise farklı policy kararıdır. Fail-closed gate protected action’ı teslim etmez. Public yardım metni veya offline reference ayrı policy ile sunulabilir; protected body yerine sessizce verilmez. Defter permission-missing için evidence=null ve allow=false tutar. Cached karar kullanılacaksa actor/object/action kapsamı, freshness ve revocation ihtiyacı açık olmalıdır. Eski allow’u sınırsız kullanmak graceful degradation değildir. Error boundary exception’ları kontrol dışı success’e çevirmemelidir. Resource limit de authorization’ın üzerinde bağımsız admission katmanıdır; bu sınırlı predicate fault tolerance, network availability veya resource isolation garantisi vermez.

2. Red · Güven ve etki

Hareket olmadan bütün senaryoları oku

Quota/permission

  1. Normal read admission

    19 byte ≤ maxBytes 64, active 1 + requested 1=2 ve permissionEvidence true. now 2 deadline 10’dan önce; bu finite koşullar title delivery’ye izin verir, write false kalır.

    Admission/failure ledger
    Normal allowed / public body / no write
    Budget ve authority gate
    Henüz değerlendirilmedi
    Operation sonucu
    Henüz değerlendirilmedi
  2. Quota-full farklı neden

    active 2 + requested 1 maxConcurrent 2’yi aşıyor. Quota-full expectedDispatch false ve body null; permission true olsa da budget kapanır, caller unauthorized sayılmaz.

    Admission/failure ledger
    Normal allowed / public body / no write
    Budget ve authority gate
    Quota full / dispatch false / not authz denial
    Operation sonucu
    Henüz değerlendirilmedi
  3. Unknown permission gate

    Permission-missing null tutar ve protected delivery kapalıdır. Known-denied false ile aynı no-body sonucu olsa da evidence türü farklı; dependency unknown allow’a tamamlanmaz.

    Admission/failure ledger
    Normal allowed / public body / no write
    Budget ve authority gate
    Quota full / dispatch false / not authz denial
    Operation sonucu
    Permission null ≠ false / both withheld
  4. Deadline equality

    now 10 deadlineTick 10 olduğunda dispatch başlamaz. Logical equality kontrolü network timeout, request cancellation veya downstream worker’ların durduğu kanıtı değildir.

    Admission/failure ledger
    Deadline equality / no dispatch
    Budget ve authority gate
    Quota full / dispatch false / not authz denial
    Operation sonucu
    Permission null ≠ false / both withheld
  5. Concurrency ve rate

    MaxConcurrent aynı anda active işler için budget. RateLimitWindowDefined false; bunu her platformda 429 veya zorunlu Retry-After sonucu diye sunmuyoruz.

    Admission/failure ledger
    Deadline equality / no dispatch
    Budget ve authority gate
    Concurrency budget / no rate-window claim
    Operation sonucu
    Permission null ≠ false / both withheld
  6. Pre-dispatch kapsamı

    Bu üç denial’da store untouched sonucu explicit no-dispatch sırasına bağlı. Finite integer gates gerçek overload capacity, distributed counter veya isolation doğrulaması değil.

    Admission/failure ledger
    Deadline equality / no dispatch
    Budget ve authority gate
    Concurrency budget / no rate-window claim
    Operation sonucu
    Known pre-dispatch denial / no downstream mutation

Partial outcome

  1. Response lost context

    After-write-response-lost ledger dispatch true, commitEvidence null ve writeOutcome null taşıyor. ActualWritePerformed false; bu satır gerçek write deneyi değil, evidence sınırı.

    Admission/failure ledger
    Dispatch true / commit unknown
    Budget ve authority gate
    Henüz değerlendirilmedi
    Operation sonucu
    Henüz değerlendirilmedi
  2. Error rollback değildir

    Caller error’ı downstream rollback olduğunu söylemez. Known before-dispatch denial false commit taşıyabilir; dispatched unknown outcome aynı Boolean’a indirgenemez.

    Admission/failure ledger
    Dispatch true / commit unknown
    Budget ve authority gate
    Client error ≠ proven rollback
    Operation sonucu
    Henüz değerlendirilmedi
  3. Retry garantisi ekleme

    RetryGuaranteesSuccess iki partial row’da da false. Mutating action retry’ı için transaction ve idempotency scope gerekir; client response yokluğu duplicate effect’i dışlamaz.

    Admission/failure ledger
    Dispatch true / commit unknown
    Budget ve authority gate
    Client error ≠ proven rollback
    Operation sonucu
    Retry outcome unguaranteed / effect scope needed
  4. Safe error projection

    ClientMessage The requested read is unavailable. olur; stack, secret ve internal path dahil değil. Minimum dış mesaj internal diagnostic reason’un hiç kaydedilmediği anlamına gelmez.

    Admission/failure ledger
    Safe message / no sensitive internals
    Budget ve authority gate
    Client error ≠ proven rollback
    Operation sonucu
    Retry outcome unguaranteed / effect scope needed
  5. Cleanup ownership

    Accepted local work sonunda reserved counter finally ile release edilir. Böyle yerel bir cleanup sonucu process crash recovery veya remote cancellation propagation kanıtı değildir.

    Admission/failure ledger
    Safe message / no sensitive internals
    Budget ve authority gate
    Local cleanup / distributed lifecycle separate
    Operation sonucu
    Retry outcome unguaranteed / effect scope needed
  6. Outcome’u honest tut

    Pre-dispatch no-write bilinir, post-dispatch write unknown kalır. Safe error veya quota başarı sayısı bu bilinmeyeni kapatmaz; commit kendi observer evidence’ını ister.

    Admission/failure ledger
    Safe message / no sensitive internals
    Budget ve authority gate
    Local cleanup / distributed lifecycle separate
    Operation sonucu
    No-dispatch known / dispatched outcome unknown

VARSAYIM · SINIR · KONTROL

Hata aldı; o hâlde işlem olmadı varsayımı

Caller’ın error görmesi bütün downstream action’ların yapılmadığını kanıtlamaz. Böyle bir sonuç dispatch ve commit boundary’si hakkında yeterli evidence ister. Quota-full ve deadline dalları dispatch öncesinde kapanır; store’a dokunulmadığı sonucu bu adım sırasına bağlıdır. Genel partial-failure tablosunda ise write dispatch edilmiş, response kaybolmuş ve commit evidence unknown kalmıştır; writeOutcome null’dır. Bu verilen durum gerçek write veya timeout deneyi değildir. İnceleme kanıtın hangi aşamada kaybolduğunu ve retry policy’nin hangi action’a uygulandığını sorar. Client error, server rollback, bütün worker’lara cancellation ulaşması veya eksiksiz audit anlamına gelmez. Her biri ayrı integration ya da transaction evidence gerektirir; normal read kontrolü bunların yerine geçmez.

Dependency unknown’dan allow’a sıçrama

Resource veya permission dependency’si yanıt vermediğinde protected işlemi açmak yalnız availability tercihi değildir; authorization control’ünü de değiştirir. Gerekli actor/object/action evidence olmadan protected delivery yapılması boundary’yi aşar. Model permission-missing için null saklar, dispatch ve body olmadan kapanır. Known deny ayrı false evidence taşır. İki branch’in aynı no-delivery sonucuna ulaşması kanıtlarının aynı olduğu anlamına gelmez. Quota-full da actor’ın yetkisiz olduğunu göstermez; yalnız seçilen budget aşılmıştır. Review nedenleri karıştırmadan gerekli koşulları izler. Örnek finite sayılarla admission kararını inceler; gerçek overload, endpoint davranışı veya distributed counter ölçümü yapmaz.

3. Blue · Güvenli geliştirme ve savunma

Hareket olmadan bütün senaryoları oku

Admission controls

  1. Bağımsız gate’ler

    Request size, permission, concurrency ve deadline ayrı değerlendirilir. Normal title Tea & Bread ve write false; protected fallback farklı operation/policy isteyecektir.

    Admission records
    Size/permission/concurrency/deadline distinct
    Gate/counter review
    Henüz değerlendirilmedi
    Evidence sonucu
    Henüz değerlendirilmedi
  2. Üç negative outcome

    Quota-full, permission-missing ve deadline dispatch false, delivery false, body null tutar. Aynı withheld sonuç farklı gate reasons ile correlation’a bağlanır.

    Admission records
    Size/permission/concurrency/deadline distinct
    Gate/counter review
    Three reasons / no dispatch or body
    Evidence sonucu
    Henüz değerlendirilmedi
  3. Counter release kontrolü

    Normal local success ve sabit benign exception sonunda finally counter release beklenir. Bu kontrol finite local reservation’dır; actual concurrency veya stress scheduler kanıtı değildir.

    Admission records
    Size/permission/concurrency/deadline distinct
    Gate/counter review
    Three reasons / no dispatch or body
    Evidence sonucu
    Success/exception cleanup / finite scope
  4. Error disclosure kontrolü

    Client safe message stack/secret/path taşımıyor. Internal reason, user response ve store outcome ayrı projections; birinin boş oluşu diğerinin başarısı diye yorumlanmaz.

    Admission records
    Safe client projection / internal reason separate
    Gate/counter review
    Three reasons / no dispatch or body
    Evidence sonucu
    Success/exception cleanup / finite scope
  5. Commit evidence karşılaştırması

    Before-dispatch denial commit false; after-dispatch lost response commit null. Unknown write outcome’ı false yapmamak mutating retry kararının doğru scope’ta kalmasını sağlar.

    Admission records
    Safe client projection / internal reason separate
    Gate/counter review
    False commit ≠ unknown commit
    Evidence sonucu
    Success/exception cleanup / finite scope
  6. Dar resource kanıtı

    Native integer predicate/cleanup sonucu capacity, circuit breaker, cancellation veya transaction sınaması değildir. Yeni production requirement varsa bu ayrı observer koşullarıyla değerlendirilir.

    Admission records
    Safe client projection / internal reason separate
    Gate/counter review
    False commit ≠ unknown commit
    Evidence sonucu
    Finite admission known / wider runtime unmeasured

Dispatch eksik

  1. Tek client error

    Review yalnız unavailable client message görüyor; dispatch ve commit kaydı yok. Aynı görünüm pre-dispatch deny veya post-dispatch unknown result olabilir.

    Admission records
    Client error known / dispatch evidence missing
    Gate/counter review
    Henüz değerlendirilmedi
    Evidence sonucu
    Henüz değerlendirilmedi
  2. Expected gate’i kopyalama

    Quota-full fixture’sındaki dispatch false bu eksik olayın actual execution kaydı değildir. Failure label’dan no-write sonucu üretmek correlation ve receipt boşluğunu gizler.

    Admission records
    Client error known / dispatch evidence missing
    Gate/counter review
    Expected no-dispatch ≠ event evidence
    Evidence sonucu
    Henüz değerlendirilmedi
  3. Write outcome açık

    Bu review dispatch/commit/write UNKNOWN tutar. Retry veya rollback önerisi bu result’ı garanti etmiyor; işin idempotency/transaction owner’ı ayrıca bilgilendirilmeli.

    Admission records
    Client error known / dispatch evidence missing
    Gate/counter review
    Expected no-dispatch ≠ event evidence
    Evidence sonucu
    Dispatch/commit/write UNKNOWN
  4. Gerekli boundaries

    Admission reason, dispatch receipt, operation identity ve store transaction outcome gerekli. Sensitive stack veya private body olmadan bu karşılaştırma alanları tutulabilir.

    Admission records
    Needed: reason/dispatch/operation/commit
    Gate/counter review
    Expected no-dispatch ≠ event evidence
    Evidence sonucu
    Dispatch/commit/write UNKNOWN
  5. Cleanup boşluğu ayrı

    Counter release gözlemi olsa bile request cancellation veya business rollback kanıtı değildir. Kaynak budget’i ile persistence effect farklı sahipler; birinin sonucu diğerini doldurmaz.

    Admission records
    Needed: reason/dispatch/operation/commit
    Gate/counter review
    Budget release ≠ rollback or cancellation
    Evidence sonucu
    Dispatch/commit/write UNKNOWN
  6. Sınırlı review sonucu

    Yeni evidence dispatch’ten önce mi sonra mı kaybolduğunu yanıtlamalı. Bu olay client error’ı korur; no-write, successful retry veya healthy overload control sonucu eklemez.

    Admission records
    Needed: reason/dispatch/operation/commit
    Gate/counter review
    Budget release ≠ rollback or cancellation
    Evidence sonucu
    Retain error / collect scoped boundary evidence

UYGULAMA · GÜVENLİK KONTROLÜ · DOĞRULAMA

Admission ve cleanup sahipliğini belirle

Request size, permission evidence, concurrency ve deadline gate’lerini pahalı resource işleminden önce uygula. Counter reservation yalnız kabul edilen iş için yapılır; yerel operation sonunda finally release edilir. Distributed sistemde counter’ın node/tenant kapsamı, atomicity’si ve crash recovery’si ayrı tasarım sorularıdır. İki integer karşılaştırması bunları çözmez. Permission dependency hatasında protected title teslim edilmez. Sınırlı public fallback varsa ayrı operation ID ve policy ile açıkça gösterilir. Server diagnostic nedeniyle client’a uygun sade mesaj ayrı projection’lar kullanır; plaintext secret, stack ve internal filesystem path dışarı verilmez. HTTP adapter status’u kendi profile’ına göre seçer. Bu defterdeki typed code’lar evrensel Event ID veya her platform için zorunlu HTTP code değildir.

No-dispatch ile unknown commit kanıtını koru

Bağımsız fixture normal read’in title ürettiğini; quota-full, permission-missing ve deadline dallarının dispatch=0, delivery=0, write=false ve body=null tuttuğunu kontrol eder. Yerel counter testinde success ve sabit benign exception sonrası finally cleanup gözlenir. Bu scheduler veya yük testi değildir. Input data ve request context’inin değişmemesi de ayrı kontrol edilir. Partial-failure tablosundaki unknown commit known false yapılmaz; mutating action retry’ı idempotency ve transaction evidence ister. Sade error formatı internal nedeni kaybetmeden client’a fazla ayrıntı taşımamayı amaçlar. Bu kanıt admission tasarımını açıklar; gerçek concurrency, cancellation, circuit breaker veya overload capacity için ayrı integration test’i gerekir.

ŞİMDİ VAKAYA UYGULA

Her client error no-write anlamına gelir mi?

Normal public read 19 byte request’i active1+requested1 ≤ maxConcurrent2 ve now2 < deadline10 ile geçiriyor. Quota-full, permission-missing ve deadline dispatch’ten önce duruyor. Genel partial-failure örneğinde response lost sonrası commit evidence null; bu ikinci durumu no-dispatch ile eşitlemeyeceğiz.

Vakadaki doğrulanmış actor, tenant ilişkisi ve requested action için gereken kararları ayır. Authentication veya proof başarısını object permission yerine kullanma.

Bağlı vaka dosyasını aç ↗

ÖRNEĞİ BİRLİKTE OKUYALIM

Atlas Notları — resource ve error karar defteri

Bir alan seç; hangi sonucu desteklediğini ve nerede yetersiz kaldığını incele.

Ham kaydı ve alan açıklamalarını oku
{
  "profile": {
    "title": "Tea & Bread",
    "requestText": "{\"noteId\":\"note-A\"}",
    "maxBytes": 64,
    "maxConcurrent": 2,
    "deadlineTick": 10,
    "actualResourceIsolation": false,
    "actualHTTP": false,
    "actualPersistence": false
  },
  "rows": [
    {
      "case": "normal",
      "bytes": 19,
      "active": 1,
      "requested": 1,
      "permissionEvidence": true,
      "now": 2,
      "expectedDispatch": true,
      "expectedDelivery": true,
      "expectedBody": {
        "title": "Tea & Bread"
      },
      "expectedWrite": false,
      "expectedDecision": "allowed"
    },
    {
      "case": "quota-full",
      "bytes": 19,
      "active": 2,
      "requested": 1,
      "permissionEvidence": true,
      "now": 2,
      "expectedDispatch": false,
      "expectedDelivery": false,
      "expectedBody": null,
      "expectedWrite": false,
      "expectedDecision": "quota-full"
    },
    {
      "case": "permission-missing",
      "bytes": 19,
      "active": 1,
      "requested": 1,
      "permissionEvidence": null,
      "now": 2,
      "expectedDispatch": false,
      "expectedDelivery": false,
      "expectedBody": null,
      "expectedWrite": false,
      "expectedDecision": "permission-missing"
    },
    {
      "case": "deadline",
      "bytes": 19,
      "active": 1,
      "requested": 1,
      "permissionEvidence": true,
      "now": 10,
      "expectedDispatch": false,
      "expectedDelivery": false,
      "expectedBody": null,
      "expectedWrite": false,
      "expectedDecision": "deadline"
    }
  ],
  "partialFailureLedger": [
    {
      "case": "before-dispatch-denial",
      "dispatch": false,
      "commitEvidence": false,
      "writeOutcome": false,
      "retryGuaranteesSuccess": false
    },
    {
      "case": "after-write-response-lost",
      "dispatch": true,
      "commitEvidence": null,
      "writeOutcome": null,
      "retryGuaranteesSuccess": false,
      "actualWritePerformed": false
    }
  ],
  "errorProfile": {
    "clientMessage": "The requested read is unavailable.",
    "stackIncluded": false,
    "secretIncluded": false,
    "internalPathIncluded": false,
    "actualHTTPResponse": false
  },
  "rateVsConcurrency": {
    "rateLimitWindowDefined": false,
    "concurrencyProfileDefined": true,
    "universal429ForConcurrency": false,
    "retryAfterMandatory": false
  },
  "unknownEvidence": {
    "permission": null,
    "expectedDispatch": false,
    "expectedDelivery": false,
    "expectedBody": null,
    "expectedWrite": false
  },
  "boundaries": {
    "actualStress": false,
    "actualCancellation": false,
    "actualDistributedCounter": false,
    "actualCircuitBreaker": false,
    "actualTransaction": false
  },
  "knownDeniedEvidence": {
    "permission": false,
    "expectedDispatch": false,
    "expectedDelivery": false,
    "expectedBody": null,
    "expectedWrite": false
  }
}
rows
Sınırlı admission koşulu; ret durumunda dispatch, delivery veya write yoktur.
partialFailureLedger
Önceden dispatch varsa commit unknown olabilir; burada gerçek write çalıştırılmaz.
errorProfile
Client’a uygun sade projection; hassas internal ayrıntı içermez.
unknownEvidence
Eksik permission evidence, bilinen deny kararı değildir.

Sınırlı integer hesabı ve sabit benign local exception kullanılır. Resource isolation, stress, network timeout, transaction veya gerçek HTTP response testi değildir.

İki yanlış kanı

Error varsa işlem kesin yapılmamıştır.

Dispatch öncesi kanıt bunu gösterebilir; dispatch sonrası response kaybında commit unknown kalabilir.

Permission service unavailable ise allow vermek güvenlidir.

Protected action için unknown evidence izin değildir; fallback varsa ayrı policy ve operation gerektirir.

SIRA SENDE

Bu hikâyeyi sen çöz.

Sonucu tahmin et, kanıtın sınırını bul ve nedenini kendi cümlenle anlat.

maxConcurrent=2; active=2 ve requested=1. Permission true ve byte budget uygun. Yeni request dispatch edilir mi?

  1. Hayır. quota-full; body ve dispatch yok.
  2. Evet. Permission true olduğunda bütün resource limit’leri kalkar.
Gerekçeli cevabı oku

Hayır. quota-full; body ve dispatch yok. — 2+1 toplamı 2 sınırını aşar. Permission başarısı resource quota’yı geçersiz kılmaz.

Permission null ve permission false iki kayıtta da dispatch’i durduruyor. Aynı evidence anlamına mı gelir?

Dersten seçilen artifact alanları; öğretim örneği

unknownEvidence
{"permission":null,"expectedDispatch":false,"expectedDelivery":false,"expectedBody":null,"expectedWrite":false}
knownDeniedEvidence
{"permission":false,"expectedDispatch":false,"expectedDelivery":false,"expectedBody":null,"expectedWrite":false}
  1. Evet. Null her zaman açık policy denial veya saldırı kanıtıdır.
  2. Hayır. Null bilinmeyen, false bilinen ret.
Gerekçeli cevabı oku

Hayır. Null bilinmeyen, false bilinen ret. — İkisi de body vermese de nedenleri farklıdır. Missing evidence’ı automatic allow veya kanıtlanmış hostile davranış diye sınıflandırmayız.

Deadline ve concurrency retleri neden universal HTTP 429 anlamına gelmez? Response yokluğundan önceki write’ın geri alındığı çıkarılır mı?

Gerekçeli cevabı oku

Bu sonlu profile concurrency kontrolü tanımlar, rate-limit window değil. HTTP status ve Retry-After policy’si ayrıca belirlenir; universal429ForConcurrency=false. Response’un olmaması commit veya write sonucunu tek başına bildirmez; conceptual after-write-response-lost sonucu unknown kalır. Bu branch gerçek write veya cancellation testi değildir. Kullanıcı hata mesajı internal path/stack/secret taşımamalıdır.

□ Concurrency kotasını rate window veya universal status saymadım.

□ Response yokluğunu business rollback garantisi saymadım.

Uygulama konsolunu aç · request / response / browser
Request, URL, cookie ve DOM örneklerini ayrıca aç

Kaynaklar ve kapsam