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