Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Backend / services serveur C

Section complète : un binaire à casquettes, index shardé par les hashes, GC sans verrou vérifié par le compilateur, jobs sur Postgres, et le rondier qui recompte les caisses.

  • IngestChemin complet assemblé : TLS→token→session→quota→rehash→append 2×→fsync→index→ack, contre-pression bornéesrv
  • Service d'indexShardé par préfixe d'adresse — le sharding gratuit des hashes uniformes, LSM+bloom co-résidentssrv
  • Service métadonnéesPas un service à part : les mêmes nœuds, classe méta (NVMe 3×, cache RAM) + refs Postgressrv
  • Coordination de dédup côté serveurDissoute : propriété émergente de l'API d'existence + sessions + index — rien à construiresrv
  • Garbage collection inter-clients — le plus durMark-and-sweep par tenant, bloom côté sortie, quarantaine, sans verrougc
  • Comptage de références / mark-and-sweepRefcounting écarté (fragile) ; mark-and-sweep auto-réparant, époques = sessionsgc
  • Isolation multi-tenant (application effective)Troisième verrou : TenantScoped<T> dans les types — l'accès cross-tenant ne compile passrv
  • AutorisationMachines (tokens), humains (SSO/RBAC → H/I), services internes (mTLS PKI privée, moindre privilège)srv
  • Files de jobs asynchronesPostgres SKIP LOCKED — transactionnel avec l'état piloté ; leases, priorités, throttling I/Ojobs
  • Scrubbing d'intégrité en tâche de fondLe rondier : passage complet / 15 j, rehash bout-en-bout, réparation EC auto, toujours rapportéjobs
  • Le GC et le compilateur RustTypestate : les transitions illégales du GC ne compilent pas ; preuves-objets, PinGuard, branding — doctrine des 3 lignes de défenselife