Claude Code réécrit l'analyseur SQL de PostHog pour un gain de vitesse de 70x – Comment le test basé sur les propriétés et les agents parallèles ont fonctionné

L'ingénieur de PostHog Robbie Coomber a utilisé plusieurs sessions Claude Code de longue durée en parallèle pour réécrire son analyseur SQL, obtenant une accélération d'environ 70x par rapport à l'ancien analyseur C++ généré par ANTLR. Le nouvel analyseur est un code Rust de 16 000 lignes écrit à la main, plus 5 000 lignes d'outils et de tests.
Pourquoi réécrire ?
PostHog transcrit le SQL utilisateur en SQL ClickHouse brut pour les vues logiques de données et les optimisations. L'analyseur transforme le SQL en AST pour le contrôle d'accès en aval et l'optimisation. L'ancien analyseur généré par ANTLR utilisait un interpréteur générique de parcours de graphe (un ATN — NFA avec pile) avec une anticipation dynamique arbitraire, ce qui était lent malgré le C++. Les analyseurs écrits à la main avec descente récursive sont intrinsèquement plus rapides.
Approche : sessions agents parallèles + TDD par oracle
- Testé deux approches en parallèle : l'une axée sur la performance (descente récursive avec analyse d'expression Pratt), l'autre sur la correction (imitant le comportement d'ANTLR avec du code explicite). Les deux ont bien fonctionné.
- Utilisé l'ancien analyseur C++ comme oracle pour générer des désaccords — trouver du SQL où les analyseurs différaient, corriger le nouvel analyseur, répéter.
- Les tests basés sur les propriétés ont généré d'innombrables variations SQL, y compris un test pour
SELECT SELECT FROM FROM WHERE WHERE AND AND(SQL valide). - Le nouvel analyseur est en accord avec l'oracle pour toutes les requêtes réalistes ; les différences n'apparaissent que pour des requêtes pathologiques.
Résultats
Accélération de 70x en analyse syntaxique. L'analyseur final est une conception en descente récursive avec anticipation et retour arrière uniquement là où nécessaire. Coomber note que sans IA, écrire et maintenir un tel analyseur manuel prendrait des mois et n'en vaudrait probablement pas la peine. Avec Claude Code, cela est devenu pratique.
Enseignement clé
Cette étude de cas montre que les sessions de codage IA en parallèle, combinées à des tests basés sur les propriétés et un oracle pour le développement piloté par les tests, peuvent améliorer considérablement le code critique pour la performance. La technique — utiliser des agents pour réécrire l'infrastructure centrale tout en s'appuyant sur la détection automatisée des désaccords — est réutilisable pour d'autres projets.
📖 Lire la source complète : HN AI Agents
👀 See Also

Octopoda : Couche de mémoire open source pour agents d'IA locaux
Octopoda est une couche mémoire open source qui donne aux agents d'IA locaux une mémoire persistante entre les sessions, une recherche sémantique, une détection de boucles et une récupération après incident. Il fonctionne entièrement hors ligne avec un modèle d'embedding de 33 Mo et s'intègre avec LangChain, CrewAI, AutoGen et OpenAI Agents SDK.

Cortex : Une couche de mémoire locale pour les agents OpenClaw avec décroissance d'Ebbinghaus
Cortex est un outil de mémoire open-source conçu pour résoudre les problèmes de compactage de contexte chez les agents OpenClaw. Il implémente les courbes d'oubli d'Ebbinghaus pour la dégradation des faits, importe d'abord à partir de fichiers et s'exécute sous la forme d'un unique binaire Go de 19 Mo avec SQLite.

Serveur MCP Local Connecte Claude aux Applications Mac Sans Cloud ni Jetons
Local MCP est un serveur MCP natif pour macOS qui donne à Claude Desktop, Cursor, Windsurf et VS Code un accès aux données de Mail, Calendar, Teams et OneDrive sur votre Mac, sans traitement cloud ni jetons API.

Adam CAD Harness s'intègre à Fusion et Onshape pour l'édition CAD agentique
Le harnais d'agent CAD d'Adam s'intègre désormais avec Autodesk Fusion et PTC Onshape, lisant et éditant les arbres de fonctionnalités via le langage naturel. Installation en une ligne de commande pour macOS/Windows.