NexusFabricCereți o prezentare

Observabilitate

Întrebarea la care trebuie să răspundă o platformă de integrare la trei dimineața e „ce s-a întâmplat cu mesajul ăsta". Vocabularul de mai jos e construit pentru răspunsul ăla, nu pentru un tablou de bord frumos.

Unitatea măsurată e livrarea

Nu cererea HTTP, ci livrarea. O livrare lasă o intrare de primire plus exact un verdict — nu zero, nu două. Pe ce ușă a intrat se citește din coloana de canal: o declanșare programată emite aceeași pereche ca un apel sincron, cu canalul care o deosebește.

Consecința practică: numărul de livrări se poate număra fără să se deosebească ușa, iar distribuția pe uși se poate obține fără să se numere de două ori aceeași livrare.

Verdictul are rubrică proprie

Verdictul tipat al livrării — reușită, tratată de secvența de eroare, eșuată — stă pe o coloană a lui în jurnal și se poate filtra după el. O livrare tratată de un handler nu se confundă cu una care a reușit din prima.

Ce nu intră în rata de eroare

Trei feluri de refuz au fiecare numele lui, fiindcă fiecare cere altă acțiune de la operator: lipsa dreptului de acces, platforma la capacitate și cererea care nu se poate identifica. Niciunul nu se numără ca eroare de flux — altfel un scaner de porturi ar urca rata de eroare a unor fluxuri pe care nu le-a atins.

O singură fereastră de retenție

Jurnalul are două ieșiri — rânduri într-o bază de date și fișiere pe disc. O singură fereastră de retenție le guvernează pe amândouă, într-o singură trecere, cablată în procesul care servește. Jumătatea necurățată ar fi fost exact aia care ține corpuri de mesaj în clar, când nivelul de jurnalizare e ridicat.

Marginile diferă deliberat: rândurile se compară cu un moment, fișierele cu o zi întreagă, deci un fișier trăiește cu până la o zi mai mult decât rândurile echivalente. E direcția sigură, și e scrisă ca atare.

Interfața de administrare

Interfața are roluri cu frontieră impusă: fiecare rută răspunde fiecărui rol exact cum spune tabelul de roluri, iar un rol fabricat trimis într-un formular e refuzat.

Paginile de raportare — panoul și statisticile — se randează integral în română sau în engleză, fără resturi din cealaltă limbă. Restul interfeței nu e tradus integral.

Pornire și reconciliere

  • O scanare de pornire nu poate tăcea: un registru care nu se poate lista oprește pornirea, în loc să lase impresia că a fost verificat.
  • Un raport de reconciliere nu pretinde că a parcurs tot cât timp ceva a rămas nescanat, și numește ce n-a putut citi.
  • O coadă drenată își recuperează octeții în timp ce lucrătorul continuă să consume, iar un mesaj aruncat din coada de scrisori moarte chiar dispare de pe disc.

Urma unui mesaj, nu un contor agregat

Nu există punct /metrics. Observabilitatea platformei e despre ce s-a întâmplat cu un mesaj — urmă cu urmă, de la intrare până la verdict — nu despre un contor agregat pe care colectorul vostru îl adună oricum.