Questions de senior : ce qu'on attend d'un architecte
AvancéAu-delà de la syntaxe, un profil senior doit savoir arbitrer et expliquer les compromis.
PostgreSQL ou autre chose ?#
| Besoin | Choix courant | Pourquoi |
|---|---|---|
| Données relationnelles, transactions, requêtes variées | PostgreSQL | Riche, fiable, extensible, un seul système pour beaucoup de besoins |
| Cache, sessions, compteurs temps réel, files simples | Redis | Latence sub-milliseconde, structures dédiées |
| Recherche plein texte avancée, facettes, gros volumes | Elasticsearch / OpenSearch | Relevance et agrégations spécialisées |
| Séries temporelles massives | TimescaleDB (extension) ou base dédiée | Compression, partitionnement automatique |
| Analytique sur des milliards de lignes | Entrepôt colonnaire (ClickHouse, BigQuery, DuckDB…) | Lectures massives par colonne |
| Documents à schéma très libre, écritures massives partitionnées | MongoDB, DynamoDB | À justifier : jsonb couvre déjà beaucoup de cas |
Les questions récurrentes et leur angle#
| Question | Ce qu'il faut couvrir |
|---|---|
| « Comment garantir la cohérence entre deux services ? » | Pas de transaction distribuée simple : outbox, idempotence, saga, cohérence à terme |
| « Comment gérer 10x de trafic ? » | Mesurer d'abord ; index/requêtes, cache, pool, répliques en lecture, partitionnement ; sharding en dernier |
| « Comment migrer un schéma sans coupure ? » | Expand/contract, CONCURRENTLY, NOT VALID, lock_timeout, lots |
| « Quels niveaux d'isolation, et lequel choisir ? » | READ COMMITTED par défaut ; REPEATABLE READ/SERIALIZABLE + retries pour les invariants complexes |
| « Que faire si la base tombe ? » | RPO/RTO, bascule testée, sauvegardes restaurées régulièrement, runbooks |
| « ORM ou SQL brut ? » | ORM pour le CRUD, SQL explicite (ou Dapper/sqlx) pour les requêtes critiques ou analytiques ; surveiller le N+1 |
Cas pratique : à la question « la base est lente, que faites-vous ? », répondez par une méthode, pas par une solution : « je mesure (
pg_stat_statements), j'isole la requête, je lis le plan, je formule une hypothèse, je corrige, je vérifie. » Cette réponse montre l'expérience, là où « j'ajoute un index » montre l'intuition.