Sari la conținutul principal
Începe un proiect
RawBotics Works · Technology ARCHITECTURE — PRINCIPII ACTIVE

Technology

Arhitectură înainte de stack.

Construim sisteme în care tehnologia poate evolua fără să rupă produsul.

Alegem componentele tehnice în funcție de context, dar păstrăm aceleași principii: boundaries clare, date controlate, integrare explicită, observability și production readiness.

EXPERIENCE web · mobile · interfețe interne APPLICATION module · business logic · workflows SERVICES API · jobs · events DATA ownership · model · istoric INTEGRATION contracte · sisteme externe INFRASTRUCTURE compute · storage · environments SECURITY OBSERVABILITY AUTOMATION AI
FIG. 00 — Technology as a system STARE: COMPONENTE SEPARATE

01 Stack vs. arhitectură

Un stack modern poate produce un sistem fragil.

Framework-urile și serviciile cloud nu rezolvă singure coupling-ul, datele incoerente, lipsa de observability sau dependențele neclare.

  • A
    Alegerea tehnologiei

    Spune ce componente sunt disponibile. Nu spune cum se leagă între ele și nici cine răspunde de ce.

  • B
    Arhitectura

    Decide unde trec granițele, ce module pot depinde unele de altele și ce se întâmplă când una dintre ele cade.

  • C
    Interfețele

    Un contract explicit permite înlocuirea unei componente fără rescrierea celor care o folosesc.

  • D
    Ownership-ul

    Fiecare tip de dată și fiecare capabilitate au un loc unde sunt definite. Fără asta, aceeași informație există în trei variante ușor diferite.

  • E
    Comportamentul în runtime

    Sistemul nu este ce arată diagrama, ci ce face sub trafic real, cu date reale și cu dependențe lente.

  • F
    Capacitatea de schimbare

    Testul final: cât costă o modificare cerută peste doi ani, în partea pe care nimeni nu o mai ține minte.

SISTEM A — ACELEAȘI COMPONENTE SISTEM B — ACELEAȘI COMPONENTE UI API JOBS DB CACHE EXTERN AUTH DEPENDENȚE IMPLICITE · SCHIMBARE COSTISITOARE UI · EXPERIENCE API · CONTRACT DOMAIN JOBS DATA · OWNERSHIP PLATFORM · OBSERVABILITY INTERFEȚE EXPLICITE · SCHIMBARE LOCALIZATĂ
FIG. 01 — Componente identice, arhitecturi diferite Diferența nu este în tehnologie

02 Principii

Principii care rămân valabile chiar când tehnologia se schimbă.

Nu sunt reguli abstracte. Sunt deciziile pe care le luăm în primele săptămâni ale unui proiect și pe care sistemul le plătește, în bine sau în rău, ani la rând.

  • P—01Boundaries clareFiecare parte a sistemului are un perimetru cunoscut. Ce este înăuntru poate fi schimbat; ce este la graniță se negociază explicit.
  • P—02Contracte expliciteInteracțiunea dintre componente trece prin ceva scris — schemă, API, eveniment — nu prin cunoștințe informale despre cum funcționează celălalt modul.
  • P—03Separarea responsabilitățilorBusiness logic-ul, accesul la date, transportul și prezentarea sunt straturi distincte. Amestecarea lor este cea mai frecventă cauză de rigiditate.
  • P—04Comportament observabilUn sistem care nu poate spune ce a făcut nu poate fi operat. Observability se proiectează odată cu funcționalitatea, nu după primul incident.
  • P—05State controlatStarea are un loc definit, un ciclu de viață și un singur mod de a fi modificată. Starea duplicată devine, în timp, stare contradictorie.
  • P—06Componente înlocuibileOrice serviciu extern, bibliotecă sau furnizor va fi, la un moment dat, schimbat. Costul acelei schimbări se decide la momentul integrării.
  • P—07Acces sigurIdentitatea, permisiunile și limitele de acces fac parte din arhitectură, nu dintr-un strat adăugat înainte de lansare.
  • P—08Failure gestionatDependențele cad, rețeaua întârzie, fișierele lipsesc. Sistemul trebuie să aibă un comportament definit pentru fiecare dintre aceste cazuri.
  • P—09Evoluție incrementalăSchimbarea se face în pași care pot fi verificați și, la nevoie, întorși. Migrațiile mari, „dintr-o dată", sunt cele care blochează echipe luni întregi.

03 Application architecture

Structura aplicației trebuie să reflecte responsabilitățile sistemului.

Organizarea codului nu este o preferință de echipă. Este harta după care se face fiecare schimbare ulterioară — și motivul pentru care unele schimbări durează o zi, iar altele o lună.

  • 01
    Module și domenii

    Sistemul se împarte după domeniile reale ale organizației — ofertare, contracte, producție, facturare — nu după tipuri tehnice de fișiere.

  • 02
    Business logic

    Regulile care contează pentru organizație stau într-un loc identificabil, testabil, independent de framework și de baza de date.

  • 03
    Servicii

    Capabilitățile partajate — notificări, documente, audit, permisiuni — sunt expuse prin interfețe, nu copiate în fiecare modul.

  • 04
    Dependențe

    Direcția dependențelor este o decizie de arhitectură. Un domeniu nu ajunge să depindă de alt domeniu doar pentru că a fost mai rapid așa.

Modular nu înseamnă automat microservices.

Modularitatea este o proprietate a codului și a granițelor. Distribuirea este o decizie de operare, cu propriul cost: rețea, consistență, deployment, debugging. Le tratăm separat.

  • AModular monolithGranițe interne clare, un singur deployment. Potrivit când echipa este compactă și complexitatea este de domeniu, nu de scală.
  • BDistributed servicesServicii separate când părți ale sistemului au cicluri de schimbare, profiluri de trafic sau cerințe de disponibilitate diferite.
  • CHibridCel mai frecvent în practică: un nucleu coerent plus câteva componente separate acolo unde separarea rezolvă o problemă reală.

Cloud & Software Architecture

04 API & contracts

Interfețele stabile fac sistemele evolvabile.

Un contract bine definit este ceea ce permite ca două părți ale sistemului să se schimbe în ritmuri diferite, fără să se aștepte una pe alta.

  1. 01ProducerExpune o capabilitate. Poate schimba implementarea oricând, cât timp respectă forma promisă.
  2. 02ContractSchemă, tipuri, erori, autentificare, versiune. Partea care nu se schimbă fără o decizie explicită.
  3. 03ConsumerFolosește capabilitatea fără să știe nimic despre interiorul ei — și fără să se rupă la fiecare release.
  • 01
    Scheme și validare

    Ce intră și ce iese este descris explicit și verificat la graniță, nu presupus în interiorul logicii.

  • 02
    Versionare

    Schimbările incompatibile primesc o versiune nouă. Consumatorii existenți continuă să funcționeze până când migrează controlat.

  • 03
    Authentication & authorization

    Cine face cererea și ce are voie să facă sunt decise de contract, nu de interfața care îl apelează.

  • 04
    Semantica erorilor

    Un consumator trebuie să poată distinge între „date invalide", „nu ai acces", „nu există" și „încearcă mai târziu".

  • 05
    Backward compatibility

    Câmpuri noi adăugate, nu câmpuri existente redefinite. Compatibilitatea se pierde o singură dată și se recuperează greu.

Systems Integration

PRODUCER implementare CONTRACT schema · v1 auth · errors WEB APP MOBILE SISTEM INTERN PARTENER FĂRĂ COUPLING DIRECT
FIG. 02 — Producer · Contract · Consumers Un contract, mai mulți consumatori

05 Data architecture

Datele au nevoie de ownership, nu doar de storage.

Întrebarea „unde ținem datele" este mai puțin importantă decât „cine le definește, cine le poate schimba și care variantă este cea corectă atunci când două sisteme nu sunt de acord".

  1. 01EntityCe reprezintă datul în realitate: un client, o comandă, un document, un eveniment.
  2. 02OwnershipCare sistem este sursa de adevăr și cine are dreptul să o modifice.
  3. 03StorageModelul potrivit formei datelor — relațional, document, fișier, serie de evenimente.
  4. 04AccessCine citește, cine scrie, în ce condiții și cu ce urmă lăsată în audit.
  5. 05UseProdus, raportare, integrare, AI — toate pe aceeași definiție, nu pe copii divergente.
  • 01
    Source of truth

    Pentru fiecare entitate importantă există un singur loc unde valoarea este considerată corectă. Restul sunt copii, marcate ca atare.

  • 02
    Modele relaționale și document

    Datele cu relații stricte și integritate tranzacțională cer altceva decât documentele cu structură variabilă. Alegerea se face pe formă, nu pe modă.

  • 03
    Event data

    Ce s-a întâmplat și când — baza pentru audit, reconstrucție și analiză. Se proiectează separat de starea curentă.

  • 04
    Metadata și istoric

    Cine a creat, cine a modificat, ce versiune a fost activă. Fără istoric, orice discuție despre o decizie trecută rămâne o presupunere.

  • 05
    Search

    Căutarea este un mod de acces cu cerințe proprii — relevanță, permisiuni, prospețime — nu o interogare obișnuită pusă peste baza operațională.

  • 06
    Lifecycle și retenție

    Datele au un început și, conceptual, un sfârșit: arhivare, anonimizare, ștergere. Regulile se stabilesc împreună cu organizația.

Data & Intelligence

06 Events & async

Nu toate lucrurile trebuie să se întâmple în aceeași cerere.

Utilizatorul are nevoie de un răspuns rapid. Sistemul are nevoie să facă, în urma acelei acțiuni, alte cinci lucruri. Cele două cerințe nu trebuie să concureze.

  • 01
    Queues și events

    Acțiunea produce un eveniment. Ce urmează după el se execută separat, fără să țină utilizatorul în așteptare.

  • 02
    Background jobs

    Procesare de documente, sincronizări, notificări, rapoarte — lucruri care pot dura, fără să blocheze interfața.

  • 03
    Retries

    Un pas care eșuează din cauza unei dependențe temporar indisponibile se reia, cu limite și cu vizibilitate.

  • 04
    Idempotency

    Același eveniment procesat de două ori nu trebuie să producă două comenzi, două facturi sau două plăți.

  • 05
    Eventual consistency

    Unele părți ale sistemului află mai târziu. Asta este acceptabil doar dacă este o decizie luată, nu un efect secundar descoperit în producție.

  • 06
    Failure recovery

    Un job care nu reușește nici după reîncercări ajunge într-un loc unde poate fi văzut, înțeles și reluat de un om.

REQUEST IMMEDIATE RESPONSE utilizatorul continuă EVENT QUEUE WORKER RESULT RETRY
FIG. 03 — Sincron și asincron, în paralel Răspuns rapid · procesare separată

07 Frontend engineering

Interfața este un sistem de stări, nu o colecție de ecrane.

Ecranele sunt ușor de desenat. Ce le face utilizabile în ziua a treizecea sunt stările intermediare: gol, în încărcare, parțial, eronat, fără permisiune, prea multe date.

  • 01Arhitectură de componenteComponentele au responsabilități clare și limite de reutilizare. Ceea ce se repetă în trei locuri devine o singură definiție.
  • 02Design systemsTipografie, spațiere, culoare, stări și componente definite o singură dată, folosite consecvent în tot produsul.
  • 03AccessibilityStructură semantică, navigare de la tastatură, focus vizibil, contrast. Nivelul de conformitate se stabilește per proiect.
  • 04Responsive behaviorAceleași informații, reorganizate pentru contextul de utilizare — nu un desktop micșorat până devine inutilizabil.
  • 05State managementCe este stare de server, ce este stare de interfață și ce este stare de sesiune — separate conceptual, tratate diferit.
  • 06PerformanțăCe se încarcă întâi, ce se amână, ce se cachează. Percepția de viteză se construiește din ordinea în care apar lucrurile.
  • 07Progressive loadingInterfața arată structura înainte să aibă toate datele, în loc să țină ecranul gol până la ultimul răspuns.
  • 08Error statesFiecare eroare spune ce s-a întâmplat și ce poate face utilizatorul mai departe. Un mesaj generic mută problema la suport.
  • 09Consecvență de interacțiuneAceeași acțiune se comportă la fel peste tot. Predictibilitatea reduce mai mult efortul decât orice ecran de ajutor.

Digital Experiences

08 Backend engineering

Business logic-ul trebuie să rămână explicit, testabil și separabil de infrastructură.

Regulile organizației sunt partea cu cea mai lungă viață dintr-un sistem. Ele supraviețuiesc framework-urilor, bazelor de date și furnizorilor — dacă nu au fost amestecate cu ele.

  • 01
    Domain logic

    Regulile de business sunt scrise o singură dată, într-un loc care poate fi citit de cineva care nu cunoaște infrastructura.

  • 02
    Servicii și workflows

    Operațiunile compuse — care ating mai multe entități și mai mulți pași — au un loc propriu, cu tranzacții și limite explicite.

  • 03
    Validare

    Datele sunt verificate la intrarea în sistem, nu în momentul în care produc o eroare undeva adânc în procesare.

  • 04
    Permisiuni

    Verificarea dreptului de acces se face în stratul care execută acțiunea, nu în cel care afișează butonul.

  • 05
    Persistență

    Accesul la date trece printr-un strat propriu. Baza de date poate fi optimizată, migrată sau schimbată fără a rescrie regulile.

  • 06
    Integrări externe

    Fiecare sistem extern este izolat în spatele unei interfețe proprii, cu timeout, retry și comportament definit la indisponibilitate.

REQUEST DOMAIN LOGIC reguli · validare · permisiuni SERVICE DATA EVENT EXTERNAL
FIG. 04 — Traseul unei cereri Logica rămâne în centru

09 Workflow & orchestration

Procesele de business au nevoie de state și control.

Un proces care traversează patru echipe și trei sisteme nu este o succesiune de apeluri. Este o entitate cu stare proprie, care trebuie să poată fi oprită, reluată și explicată.

  • 01
    Workflow state

    În ce etapă se află fiecare instanță, de când, ce a produs până acum și ce așteaptă ca să avanseze.

  • 02
    Reguli și ramificații

    Condițiile care decid traseul sunt definite explicit, într-un loc unde pot fi citite și modificate fără arheologie în cod.

  • 03
    Pași umani

    Aprobările, verificările și deciziile rămân în proces, cu termen, responsabil și urmă în audit — nu pe email, lângă proces.

  • 04
    Acțiuni de sistem

    Generare de documente, actualizări în alte sisteme, notificări — executate ca pași ai fluxului, nu ca efecte secundare.

  • 05
    Excepții

    Cazurile care ies din traseul normal sunt parte din proiect, nu surprize. Un flux fără excepții descrise nu este încă terminat.

  • 06
    Retries

    Pașii automați care depind de sisteme externe se reiau controlat, fără să dubleze efecte deja produse.

  • 07
    Audit

    Cine a făcut ce și când, la nivel de instanță de proces. Fără asta, orice reconstituire ulterioară devine o discuție de memorie.

Automation & Orchestration

10 AI system architecture

Modelul este doar o componentă din sistemul AI.

Ce face diferența nu este modelul ales, ci contextul pe care îl primește, instrumentele pe care le poate folosi, validarea rezultatului și locul în care acel rezultat intră în sistem.

  1. 01User / EventPunctul de pornire: o întrebare, un document nou, o schimbare de stare într-un flux.
  2. 02ContextCe știe sistemul despre situație: utilizator, permisiuni, entitatea în lucru, istoricul relevant.
  3. 03RetrievalInformația adusă din surse reale, filtrată după ce are voie să vadă cel care întreabă.
  4. 04ModelComponenta care interpretează și formulează — nu sursa adevărului și nici arbitrul final.
  1. 05ToolsAcțiunile pe care le poate declanșa: căutare, calcul, citire sau scriere într-un sistem, cu limite.
  2. 06ValidationVerificarea rezultatului înainte să producă efecte: format, reguli de business, praguri de încredere.
  3. 07Action / OutputRezultatul intră înapoi în produs, în flux sau în date — cu sursele și cu urma pașilor.

Preocupări care traversează tot sistemul AI.

  • A
    Permisiuni

    Sistemul AI nu poate vedea sau face mai mult decât utilizatorul în numele căruia lucrează.

  • B
    Evaluare

    Calitatea răspunsurilor se măsoară pe cazuri reprezentative, nu se estimează după primele demonstrații.

  • C
    Observability

    Se înregistrează pașii operaționali: ce surse au fost consultate, ce instrumente au fost apelate, ce a fost validat și ce a fost respins.

  • D
    Verificare umană

    Pentru acțiunile cu impact, decizia finală rămâne la un om, cu contextul necesar în față.

AI Systems & Agents

11 RAG & knowledge

Knowledge systems conectează informația organizației cu AI-ul și produsele.

Documentele, procedurile și istoricul operațional există deja. Problema este că nu sunt accesibile în momentul în care cineva are nevoie de ele, în forma în care are nevoie.

  1. 01Documents / DataSursele reale: contracte, proceduri, specificații, tichete, date operaționale.
  2. 02IndexConținutul devine căutabil, cu metadata care spune de unde vine și pentru cine este vizibil.
  3. 03RetrievalSe aduc fragmentele relevante pentru întrebarea concretă, nu tot ce conține cuvântul căutat.
  4. 04ContextMaterialul selectat se compune într-un context coerent, cu sursele atașate.
  5. 05Product / AIRezultatul apare acolo unde se lucrează: în produs, în flux, în ecranul operatorului.
  • 01
    Ingestion

    Preluarea conținutului din sursele existente, cu urmărirea modificărilor. Un knowledge system care se actualizează manual încetează repede să fie folosit.

  • 02
    Segmentare

    Documentele lungi se împart în unități care păstrează sensul. Granița dintre fragmente influențează direct calitatea răspunsurilor.

  • 03
    Metadata

    Tip de document, versiune, dată, departament, entitate asociată. Fără ea, căutarea semantică nu poate fi filtrată util.

  • 04
    Embeddings și vector search

    Regăsire după sens, nu doar după potrivire de cuvinte — combinată, de obicei, cu filtrare structurată.

  • 05
    Retrieval cu permisiuni

    Un utilizator primește doar fragmente din documentele pe care are dreptul să le vadă. Filtrarea se face la regăsire, nu la afișare.

  • 06
    Atribuirea sursei

    Fiecare afirmație poate fi urmărită până la documentul și secțiunea din care provine. Asta transformă un răspuns într-un răspuns verificabil.

  • 07
    Prospețime

    Când sursa se schimbă, indexul se actualizează. Un răspuns corect acum șase luni poate fi astăzi o eroare.

12 Tool use & agents

AI devine operațional când poate folosi instrumente în limite controlate.

Diferența dintre un asistent care sugerează și un sistem care ajută este accesul la acțiuni reale. Aceleași acțiuni sunt și motivul pentru care limitele trebuie definite înainte.

  • 01ToolsFiecare instrument are un scop îngust, o intrare definită și un rezultat previzibil. Un instrument vag produce comportament vag.
  • 02API-uriInstrumentele folosesc aceleași contracte ca restul sistemului, cu aceleași verificări — nu o cale ocolitoare creată pentru AI.
  • 03AcțiuniCe poate schimba efectiv în sistem este o listă explicită, nu o consecință a ceea ce se întâmplă să fie accesibil.
  • 04Permisiuni delimitateFiecare execuție rulează cu drepturile utilizatorului sau ale unei identități de serviciu cu scop restrâns.
  • 05ValidareRezultatul este verificat înainte de a produce efecte: formă, reguli de business, coerență cu starea curentă.
  • 06RetriesUn pas eșuat se reia în limite definite, fără să repete acțiuni care au produs deja efecte.
  • 07Human checkpointsAcțiunile ireversibile sau cu impact extern trec printr-o confirmare umană, cu tot contextul necesar afișat.
  • 08Execution traceSe poate reconstitui ce pași au fost executați, în ce ordine, cu ce intrări și cu ce rezultat operațional.

Nu construim autonomie nelimitată. Construim sisteme în care fiecare acțiune automată are un perimetru, o verificare și un loc unde poate fi oprită.

13 Infrastructure

Infrastructure este mediul în care produsul trebuie să rămână predictibil.

Alegerile de infrastructură se fac în funcție de cerințele produsului și de contextul organizației — inclusiv de cine urmează să opereze sistemul după livrare.

  • 01ComputeContainer, serverless sau instanțe dedicate — în funcție de profilul de trafic, de latență și de modul de operare acceptabil.
  • 02StorageDate operaționale, fișiere, object storage, arhivă. Fiecare cu propriile cerințe de durabilitate și acces.
  • 03NetworkingCe este expus public, ce rămâne intern, cum comunică serviciile între ele și pe unde intră traficul.
  • 04EnvironmentsMedii separate, cu resurse și date proprii, astfel încât o verificare să nu poată afecta producția.
  • 05ConfigurațieCe diferă între medii este declarat explicit, versionat și separat de cod.
  • 06SecretsCredențialele nu stau în cod și nu circulă prin canale de comunicare. Accesul la ele este limitat și înregistrat.
  • 07ScalingCe component scalează, la ce semnal și până unde. Scalarea automată fără limite este o problemă de cost, nu o soluție.
  • 08Backups & recoveryUn backup are valoare doar dacă restaurarea a fost testată. Obiectivele de recuperare se stabilesc împreună cu organizația.
  • 09Managed servicesAcolo unde un serviciu gestionat reduce efortul de operare fără să blocheze arhitectura, este alegerea rezonabilă.

Alegerea furnizorului de infrastructură se face per proiect, în funcție de cerințele de găzduire, integrare și conformitate ale organizației.

14 Environments

Development, test, staging și production trebuie să fie separate prin intenție.

Separarea mediilor nu este o formalitate de proces. Este ceea ce face posibilă verificarea unei schimbări fără să pui în joc datele și disponibilitatea din producție.

  1. 01DevelopmentUnde se construiește. Rapid, izolat, cu date de lucru — niciodată cu date reale de producție.
  2. 02TestUnde se verifică automat comportamentul: reguli, integrări, regresii, cazuri de eroare.
  3. 03StagingCât mai aproape de producție ca formă și configurație. Ultimul loc unde o problemă costă puțin.
  4. 04ProductionUnde sistemul are utilizatori reali, date reale și consecințe reale.
  • 01
    Granițe de configurație

    Fiecare mediu are propriile setări, chei și limite. Nimic nu trece dintr-un mediu în altul implicit.

  • 02
    Separarea datelor

    Datele reale rămân în producție. Mediile inferioare lucrează cu date generate sau anonimizate.

  • 03
    Încredere în deployment

    O schimbare ajunge în producție după ce a trecut prin aceleași verificări, în aceeași ordine, de fiecare dată.

  • 04
    Rollback

    Există o cale definită de întoarcere la versiunea anterioară, cunoscută înainte de livrare, nu improvizată în timpul unui incident.

15 CI/CD

Delivery-ul repetabil reduce riscul schimbării.

Când livrarea este un proces manual, fiecare release devine un eveniment. Când este automatizată și verificată, devine o operațiune obișnuită — și, în consecință, mai deasă și mai mică.

  1. 01CommitSchimbarea intră versionată, cu autor și context.
  2. 02BuildAceleași surse produc același artefact, reproductibil.
  3. 03TestVerificări automate: unitare, de integrare, de regresie.
  4. 04ValidateVerificări de calitate, securitate și dependențe.
  5. 05DeployLivrare în etape, cu posibilitate de oprire și de întoarcere.
  6. 06ObserveSe urmărește comportamentul real după livrare, nu doar succesul pipeline-ului.
  • 01
    Verificări automate

    Ce trebuie să fie adevărat despre sistem este exprimat în teste care rulează la fiecare schimbare, nu într-o listă de verificat manual.

  • 02
    Build reproductibil

    Dependențele sunt fixate. Ce a funcționat în test este exact ce ajunge în producție.

  • 03
    Livrare în etape

    Schimbările ajung progresiv la utilizatori, astfel încât o problemă să fie observată înainte să afecteze pe toată lumea.

  • 04
    Vizibilitatea release-ului

    Se știe ce versiune rulează, ce conține și când a fost livrată — informația de care are nevoie orice investigație ulterioară.

16 Observability

Sistemul trebuie să poată explica ce se întâmplă în production.

Întrebarea nu este dacă apar probleme, ci cât durează până când cineva poate spune exact unde s-a oprit lucrul și de ce.

  • 01
    Logs

    Evenimente cu context suficient pentru a reconstitui ce s-a întâmplat, structurate ca să poată fi căutate.

  • 02
    Metrics

    Indicatori numerici urmăriți în timp: volum, latență, erori, saturație. Baza pentru alerte și pentru comparație.

  • 03
    Traces

    Traseul unei cereri prin toate componentele pe care le atinge, cu timpul petrecut în fiecare.

  • 04
    Erori

    Grupate, cu frecvență și context, nu ca linii izolate pierdute într-un flux de log.

  • 05
    Sănătatea dependențelor

    Starea sistemelor externe de care depinde produsul, vizibilă separat de starea produsului însuși.

  • 06
    Execuția job-urilor

    Ce a rulat, când, cât a durat, ce a eșuat și ce așteaptă în coadă.

  • 07
    Trace-uri AI la nivel operațional

    Ce surse au fost consultate, ce instrumente au fost apelate, ce validări au trecut sau au fost respinse. Nu se înregistrează raționamentul intern al modelului.

  • 08
    Starea workflow-urilor

    Câte instanțe sunt în fiecare etapă, care sunt blocate și de cât timp.

O CERERE · UN TRACE EDGE APP SERVICE DATA EXTERN TRACE — SEGMENTE edge app service data sistem extern SE VEDE UNDE S-A DUS TIMPUL
FIG. 05 — Trace end-to-end Proporții ilustrative

17 Reliability

Failure-ul trebuie proiectat, nu descoperit accidental.

Orice dependență externă va fi, la un moment dat, lentă sau indisponibilă. Diferența o face ce se întâmplă în sistem în acel moment.

  • 01
    Timeouts

    Fiecare apel extern are o limită de așteptare. Fără ea, o dependență lentă devine o indisponibilitate generală.

  • 02
    Retries

    Reîncercare acolo unde eroarea este probabil temporară, cu interval crescător și cu limită.

  • 03
    Circuit breaking

    Când o dependență eșuează constant, sistemul încetează să o apeleze o vreme, în loc să acumuleze cereri blocate.

  • 04
    Fallbacks

    Un comportament alternativ definit: date din cache, funcționalitate redusă, un mesaj clar — nu un ecran gol.

  • 05
    Idempotency

    Operațiunile cu efecte se pot repeta în siguranță, ceea ce face reîncercările posibile fără dublări.

  • 06
    Degradare controlată

    Partea afectată se oprește; restul produsului continuă. O componentă căzută nu trebuie să oprească tot sistemul.

  • 07
    Recovery și backups

    Proceduri de revenire pregătite și verificate înainte, nu redactate în timpul incidentului.

Nu promitem absența întreruperilor. Proiectăm sisteme în care o întrerupere este limitată, vizibilă și recuperabilă.

PRIMARY PATH FAILURE RETRY FALLBACK RECOVERY STARE STABILĂ
FIG. 06 — Rute definite pentru eșec Comportament, nu improvizație

18 Security by architecture

Securitatea trebuie să existe în boundaries, identitate și acces.

Securitatea nu este un strat adăugat înainte de lansare. Este o proprietate a modului în care sistemul decide cine are voie să facă ce, în fiecare punct în care ceva se întâmplă.

  • 01
    Authentication

    Cine este cel care face cererea, verificat într-un singur loc, consecvent pentru toate căile de acces.

  • 02
    Authorization

    Ce are voie să facă, verificat de sistemul care execută acțiunea — nu presupus de interfața care o inițiază.

  • 03
    Acces pe roluri

    Drepturile se atribuie prin roluri definite împreună cu organizația, nu individual, caz cu caz.

  • 04
    Least privilege

    Fiecare utilizator, serviciu și integrare primește minimul necesar pentru sarcina lor — inclusiv componentele automate.

  • 05
    Secrets

    Gestionate separat de cod și de configurație, cu acces limitat și posibilitate de rotație.

  • 06
    Criptare

    Datele sunt protejate în tranzit și, acolo unde este cazul, în repaus. Cerințele concrete se stabilesc per proiect.

  • 07
    Audit trail

    Acțiunile importante lasă o urmă care nu poate fi modificată din interfața obișnuită a aplicației.

  • 08
    Separarea mediilor

    Credențialele și datele de producție rămân în producție. Un acces obținut în dezvoltare nu deschide nimic altundeva.

  • 09
    Igiena dependențelor

    Bibliotecile folosite sunt urmărite și actualizate. Cea mai mare parte a suprafeței de atac vine din cod pe care nu l-am scris noi.

IDENTITY POLICY rol · scope · context ALLOWED DENIED RESOURCE DECIZIA SE IA ÎNAINTE DE ACȚIUNE
FIG. 07 — Identity · Policy · Resource Ambele rute sunt definite

19 Identity & permissions

Accesul trebuie decis de sistem, nu presupus de interfață.

Un buton ascuns nu este o permisiune. Dacă acțiunea poate fi executată printr-un apel direct, atunci restricția nu există.

  1. 01UserO identitate verificată — persoană sau serviciu — cu apartenență cunoscută în organizație.
  2. 02RoleSetul de responsabilități care descrie ce face acel utilizator în sistem.
  3. 03PermissionsDrepturile concrete rezultate din rol, plus limitele impuse de context.
  4. 04Data / Action / SystemCe poate citi, ce poate modifica și ce poate declanșa, verificat la fiecare cerere.
  • 01
    Roluri

    Definite după cum lucrează efectiv organizația, nu după ecranele existente în aplicație.

  • 02
    Scopes

    Integrările și componentele automate primesc drepturi limitate la ce au nevoie, nu drepturi de administrator „ca să meargă".

  • 03
    Granițe de tenant

    Acolo unde sistemul deservește mai multe entități, separarea între ele este o proprietate a modelului de date, nu un filtru adăugat în interogări.

  • 04
    Acces la nivel de obiect

    Pentru unele produse, dreptul se decide pe înregistrarea concretă — un dosar, un proiect, un client — nu pe tipul de entitate.

  • 05
    Identități de serviciu

    Componentele automate au identitate proprie, cu drepturi proprii și cu urmă proprie în audit.

20 Performance

Performanța este proprietatea întregului traseu.

Utilizatorul nu percepe componente. Percepe timpul dintre acțiunea lui și momentul în care poate continua — iar acel timp se compune din toate straturile prin care trece cererea.

  • 01
    Frontend

    Ce se încarcă, în ce ordine și cât din interfață este utilizabil înainte să sosească toate datele.

  • 02
    API

    Câte cereri sunt necesare pentru un ecran și cât lucru face fiecare dintre ele.

  • 03
    Database

    Interogări, indexuri, volum returnat. Aici apar cele mai multe încetiniri care cresc odată cu datele.

  • 04
    Cache

    Ce se poate reutiliza, pentru cât timp și cum se invalidează. Un cache fără invalidare corectă devine o sursă de erori.

  • 05
    Network

    Distanța, numărul de treceri și dimensiunea răspunsurilor contează mai mult decât pare din mediul de dezvoltare.

  • 06
    Background work

    Ce poate ieși din calea cererii ca utilizatorul să primească răspuns mai devreme.

  • 07
    Search

    Are propriile costuri și propriile optimizări, separate de cele ale bazei operaționale.

  • 08
    Dependențe externe

    Partea din latență pe care nu o controlăm — motiv pentru care este izolată și, unde se poate, scoasă din traseul sincron.

BUGET DE LATENȚĂ — O CERERE NETWORK FRONTEND — render, hidratare API — transport, serializare BUSINESS LOGIC DATABASE EXTERN
FIG. 08 — Latența se compune Distribuție ilustrativă, fără ținte numerice

21 Scale

Scalarea înseamnă mai mult decât mai multe servere.

Fiecare tip de creștere lovește altă parte a sistemului. Adăugarea de resurse rezolvă doar una dintre ele — de obicei, nu pe cea care doare.

  • 01TraficMai multe cereri simultane. Se rezolvă prin capacitate, cache și reducerea lucrului per cerere.
  • 02Volum de dateAceleași interogări devin mai lente pe zece milioane de rânduri. Se rezolvă prin model, indexare, partiționare și arhivare.
  • 03Lucru concurentMai mulți utilizatori pe aceleași înregistrări. Se rezolvă prin blocare, versionare și fluxuri care evită coliziunile.
  • 04Procesare de fundalCozile cresc mai repede decât capacitatea de consum. Se rezolvă prin paralelizare, prioritizare și limitare.
  • 05Complexitate organizaționalăMai multe echipe pe același sistem. Se rezolvă prin granițe și contracte, nu prin infrastructură.
  • 06Sarcină de integrareMai multe sisteme conectate, fiecare cu ritmul și disponibilitatea lui. Se rezolvă prin asincron, izolare și contracte stabile.
  • 07Vizibilitate operaționalăLa scară, ce nu este măsurat nu este cunoscut. Observability devine ea însăși o cerință de scalare.

Prima întrebare nu este „cum scalăm", ci „ce anume crește". Răspunsurile arată complet diferit.

22 Technology selection

Alegem tehnologia în funcție de sistem, nu sistemul în funcție de tehnologie.

Nu există un răspuns universal. Există un set de dimensiuni pe care le evaluăm de fiecare dată, iar răspunsul se schimbă de la un proiect la altul.

  • D—01Tipul produsuluiUn produs SaaS, o platformă internă, un portal public și un sistem de procesare au profiluri complet diferite de utilizare și de risc.
  • D—02Contextul echipeiCine va menține sistemul după livrare. O tehnologie pe care nimeni din organizație nu o poate opera devine o dependență, nu un avantaj.
  • D—03Peisajul de integrareCe sisteme există deja, ce interfețe expun și cât de rigid este ce nu poate fi schimbat.
  • D—04Caracteristicile datelorStructură, volum, rată de schimbare, relații, cerințe de istoric și de căutare.
  • D—05LatențăCe trebuie să fie instantaneu pentru utilizator și ce poate aștepta câteva secunde sau câteva minute.
  • D—06ScalăCe anume crește, cât de repede și în ce direcție — trafic, date, utilizatori, integrări sau echipe.
  • D—07Constrângeri de conformitateCerințe legale sau interne privind locul datelor, accesul, păstrarea și auditul.
  • D—08Modelul de deploymentCloud, infrastructură proprie sau mixt — decis de context organizațional, nu de preferință tehnică.
  • D—09Maturitatea operaționalăCe poate fi operat realist: monitorizare, intervenție, actualizări, răspuns la incidente.
  • D—10Mentenabilitate pe termen lungCât de ușor va fi de înțeles și de modificat sistemul de către cineva care ajunge la el peste trei ani.

Discutăm categorii tehnice și opțiuni reprezentative în funcție de context. Folosirea unei tehnologii sau a unui furnizor nu implică un parteneriat formal cu producătorul acesteia.

23 Modernization

Tehnologia nouă are valoare doar dacă reduce o limitare reală.

Modernizarea începe de la ce anume blochează organizația astăzi, nu de la vechimea framework-ului din care este construit sistemul.

  • 01ReplaceComponenta este înlocuită complet. Justificat când costul de menținere depășește costul de reconstrucție și granițele sunt clare.
  • 02RefactorStructura internă se schimbă, comportamentul rămâne. Cea mai ieftină cale când problema este organizarea codului, nu tehnologia.
  • 03ReplatformAceeași aplicație, alt mediu de rulare. Rezolvă probleme de operare, cost sau scalare, fără a atinge logica.
  • 04IsolatePartea problematică este delimitată clar, ca să nu se răspândească mai departe și să poată fi tratată separat.
  • 05WrapSistemul vechi primește o interfață modernă în față. Restul arhitecturii poate avansa fără să îl aștepte.
  • 06MigrateTrecerea se face incremental, cu ambele variante funcționale o perioadă și cu o cale de întoarcere.

Nu rescriem un sistem doar pentru că un framework este vechi. Rescriem atunci când vechimea lui produce o limitare pe care organizația o simte: un cost, un risc sau o schimbare imposibilă.

Product Modernization

24 Build · Buy · Integrate

Nu totul trebuie construit de la zero.

Cea mai frecventă eroare nu este alegerea greșită, ci aplicarea aceleiași alegeri la toate părțile sistemului.

  1. ABuild Când capabilitatea ține de logica proprie a produsului sau de ceea ce diferențiază organizația. Aici, o soluție generică ar impune procesul altcuiva.
  2. BBuy Când există o capabilitate matură, standardizată, pe care nimeni nu câștigă nimic reconstruind-o. Costul real nu este licența, ci integrarea și dependența.
  3. CIntegrate Când valoarea vine din legarea sistemelor existente. Ce lipsește nu este o funcționalitate nouă, ci un traseu coerent între cele care există deja.

Alegerea se face pe componentă, nu pe sistem.

Un produs bine construit conține, de obicei, toate cele trei decizii: partea proprie este construită, capabilitățile comune sunt cumpărate, iar sistemele existente sunt integrate. Ce contează este ca fiecare graniță dintre ele să fie explicită și înlocuibilă.

Systems Integration

25 Capability composition

Aceleași primitives tehnice se combină diferit în funcție de produs.

Nu avem o soluție pe care o adaptăm la fiecare client. Avem un substrat tehnic comun din care se compune, de fiecare dată, altă arhitectură.

SYSTEM ARCHITECTURE PRODUCT AI AUTOMATION DATA INTEGRATION CLOUD EXPERIENCE ACELAȘI SUBSTRAT · COMPOZIȚII DIFERITE
FIG. 09 — Compoziție de capabilități Explorează Capabilitățile

26 Technology in work

Arhitectura devine vizibilă în produsele construite.

Patru sisteme din domenii diferite, construite pe același mod de a gândi — dar cu compoziții tehnice care nu seamănă între ele.

PRODUCT WORKFLOW AI DATA INTEGR. EXPERIENCE INFRA BIDFLOW CYNEX certifAI ADMINISTRAȚIE LOCALĂ ACCENT ARHITECTURAL RELATIV — NU MĂSURĂTORI
FIG. 10 — Aceleași primitives, patru compoziții Explorează Work
  • 01
    BidFlow

    Platformă pentru procesul de lucru din jurul licitațiilor. Greutatea arhitecturală stă în produs, în fluxul de lucru și în asistența AI aplicată pe contextul organizației.

    Vezi Work

  • 02
    CYNEX

    Platformă digitală pentru instituții publice: procese standardizate, fluxuri de aprobare, planificare, trasabilitate și arhivă. Aici domină workflow-ul, permisiunile și auditul.

    Vezi Work

  • 03
    certifAI

    Platformă de certificare și conformitate pentru operatori economici din construcții. Centrul de greutate este structura datelor, dovezile verificabile și validarea.

    Vezi Work

  • 04
    Platformă pentru administrație locală

    Servicii, procese și date locale într-o arhitectură comună. Aici cântăresc cel mai mult integrarea cu sistemele existente și coordonarea între departamente.

    Vezi Work

27 Technology & process

Arhitectura este verificată prin proces, nu doar definită la început.

O decizie de arhitectură luată în prima lună este o ipoteză. Procesul este locul unde acea ipoteză este testată împotriva realității, în fiecare etapă.

  • 01
    Understand

    Constrângerile reale ale organizației — operaționale, legale, de echipă — apar aici. Ele elimină, de obicei, jumătate din opțiunile tehnice.

  • 02
    Map

    Procesele, datele și sistemele existente arată unde trebuie să treacă granițele arhitecturii.

  • 03
    Architect

    Se stabilesc straturile, contractele, modelul de date și deciziile tehnologice — cu motivele scrise, nu doar cu rezultatul.

  • 04
    Build

    Prima parte construită confirmă sau infirmă arhitectura. Aici se corectează ce nu s-a văzut pe diagramă.

  • 05
    Validate

    Comportamentul este verificat pe cazuri reale, inclusiv pe cele de eroare, nu doar pe traseul fericit.

  • 06
    Operate

    Producția arată ce a fost subestimat: latență, volum, dependențe, moduri de utilizare neprevăzute.

  • 07
    Evolve

    Cerințele noi testează dacă granițele alese chiar permit schimbarea. Acesta este examenul final al oricărei arhitecturi.

Vezi Process

28 Anti-complexity

Complexitatea trebuie justificată.

Nu adăugăm servicii, queues, AI, distributed systems sau infrastructură complexă doar pentru că sunt disponibile. Le introducem atunci când rezolvă o constrângere reală a produsului sau a operării.

Fiecare componentă în plus este cod de scris, de operat și de explicat

29 Evolvability

Sistemul bun nu este cel care nu se schimbă. Este cel care poate fi schimbat controlat.

Fiecare sistem util primește cerințe noi. Diferența dintre un sistem sănătos și unul blocat este cât costă prima schimbare care nu a fost anticipată.

  1. 01Current systemCe funcționează astăzi, cu granițele și contractele deja stabilite.
  2. 02New requirementO cerință care nu a fost prevăzută — pentru că nicio arhitectură nu prevede tot.
  3. 03Change boundarySe identifică exact ce parte se modifică și ce rămâne neatins. Aici se plătește calitatea granițelor.
  4. 04TestTestele existente confirmă că restul sistemului nu a fost afectat.
  1. 05DeployLivrare în etape, cu cale de întoarcere pregătită.
  2. 06ObserveSe urmărește comportamentul real, nu doar absența erorilor.
  3. 07Stable systemSistemul revine într-o stare stabilă, cu o capabilitate în plus și fără datorie ascunsă.

Ce face bucla posibilă.

  • A
    Modularitate

    Schimbarea are unde să se oprească.

  • B
    Interfețe

    Restul sistemului nu trebuie să afle ce s-a modificat înăuntru.

  • C
    Teste

    Confirmarea că nimic altceva nu s-a rupt vine în minute, nu în săptămâni.

  • D
    Observability

    Efectul real al schimbării este vizibil imediat după livrare.

  • E
    Migrație și rollback

    Datele și versiunile pot trece înainte și, la nevoie, înapoi.

30 End-to-end architecture

Un singur sistem, de la interfață până la infrastructură.

Straturile de mai jos nu descriu un produs anume. Descriu locurile în care se iau decizii și modul în care aceste decizii se leagă între ele.

INPUTS USERS EVENTS EXTERNAL SYSTEMS EXPERIENCE Web · Mobile · Interfețe interne APPLICATION Module produs · Business logic · Workflows SERVICES API · Integrări · Jobs · Events INTELLIGENCE AI · Retrieval · Knowledge · Tool use DATA Date operaționale · Search · Fișiere · Metadata · Istoric PLATFORM Identity · Permisiuni · Notificări · Audit · Observability INFRASTRUCTURE Compute · Storage · Network · Environments · Delivery SECURITY AUTOMATION OBSERVABILITY CROSS-CUTTING OUTPUTS ACTIONS DECISIONS DOCUMENTS STATE INSIGHT
FIG. 11 — Arhitectură tehnologică end-to-end Fără logo-uri de furnizor

31 Trade-offs

Engineering-ul bun înseamnă trade-offs făcute explicit.

Fiecare pereche de mai jos are două răspunsuri corecte, în contexte diferite. Problema nu este alegerea, ci alegerea făcută fără să fie numită.

  • T—01Viteză vs. flexibilitateO structură mai simplă livrează mai repede; una mai generală acceptă mai ușor schimbări. Alegerea depinde de cât de sigur este contextul.
  • T—02Simplitate vs. distribuireServiciile separate rezolvă independența, dar adaugă rețea, consistență și operare. Costul se plătește zilnic.
  • T—03Consistență vs. disponibilitateUnele operațiuni trebuie să fie corecte imediat; altele pot fi corecte în câteva secunde. Cele două cerințe nu se pot maximiza simultan.
  • T—04Build vs. buyControl complet și cost de menținere, sau viteză și dependență. Decizia se ia pe componentă, nu pe sistem.
  • T—05Sincron vs. asincronRăspunsul imediat este simplu de înțeles; procesarea separată este mai rezistentă, dar cere gestionarea stării intermediare.
  • T—06Automatizare vs. control umanAutomatizarea scade efortul și crește viteza; verificarea umană scade riscul. Pragul se stabilește pe impactul acțiunii.
  • T—07Capabilitate AI vs. determinismUn model acoperă mai multe cazuri, dar cu rezultate variabile. O regulă acoperă mai puțin, identic de fiecare dată.
  • T—08Abstractizare vs. transparențăAbstracția reduce repetiția, dar ascunde ce se întâmplă. Prea multă abstracție face debugging-ul mai scump decât codul economisit.

Nu rezolvăm aceste tensiuni o dată pentru totdeauna. Le rezolvăm de fiecare dată, explicit, și scriem motivul — pentru că peste doi ani contextul poate cere alt răspuns.

32 Outcomes

Tehnologia este bună atunci când dispare din calea produsului.

Semnul unei arhitecturi sănătoase nu este că este impresionantă, ci că discuțiile din organizație redevin despre produs și despre oameni, nu despre sistem.

  • 01Schimbare mai rapidă și controlatăO cerință nouă are un loc evident unde se implementează și un mod evident de a fi verificată.
  • 02Ownership mai clarSe știe cine răspunde de fiecare parte a sistemului și de fiecare tip de dată.
  • 03Integrare mai ușoarăUn sistem nou care trebuie conectat găsește contracte existente, nu are nevoie de o excepție.
  • 04Operare observabilăCând ceva nu merge, întrebarea „unde" primește răspuns în minute, nu în zile.
  • 05Evoluție mai sigurăSchimbările pot fi livrate mai des, tocmai pentru că fiecare este mai mică și reversibilă.
  • 06Date reutilizabileAceeași informație susține produsul, raportarea, integrarea și AI-ul, fără copii care se contrazic.
  • 07Experiență mai bunăInterfața poate fi îmbunătățită fără să atingă logica, iar performanța nu se degradează pe măsură ce cresc datele.
  • 08AI-readinessContextul, permisiunile și fluxurile există deja — AI-ul se adaugă unde are sens, nu se construiește pe lângă sistem.

33 Convergență

Opt decizii tehnice care produc un singur rezultat.

ARCHITECTURE DATA INTEGRATION AI AUTOMATION INFRASTRUCTURE SECURITY OBSERVABILITY EVOLVABLE PRODUCTION SYSTEM UN SISTEM CARE POATE FI OPERAT ȘI SCHIMBAT
FIG. 12 — Convergență Același vocabular ca în Hero

Contact

Ai un produs care are nevoie de o fundație tehnică mai clară?

Putem proiecta arhitectura, datele, integrarea și infrastructura astfel încât produsul să poată crește, integra AI și evolua fără să devină mai fragil.