ClickHouse
AnalytiqueUn OLAP en colonnes pour les indicateurs et tableaux de bord par espace de travail — sans peser sur le PostgreSQL transactionnel.
Monolithe modulaire. 29 modules métier. Un seul binaire compilé qui délivre 4× le débit pour une fraction des ressources.
Benchmarks
Indicateur
Node.js (précédent)
Rust (BetterSuite)
Débit (RPS)
~600
2,400
Mémoire au repos
~1.8 GB
~100 MB
Artefact de déploiement
~3.5 GB
270 MB
Latence serveur moy.
~80-150 ms
~5-20 ms
Architecture
10 microservices (sauts réseau)
Monolithe modulaire (intra-processus)
Node.js (précédent)
Rust (BetterSuite)
Débit (RPS)
~600
2,400
Mémoire au repos
~1.8 GB
~100 MB
Artefact de déploiement
~3.5 GB
270 MB
Latence serveur moy.
~80-150 ms
~5-20 ms
Architecture
10 microservices (sauts réseau)
Monolithe modulaire (intra-processus)
* Toutes les mesures ont été réalisées sur un VPS identique de 4 Go exécutant la même charge. La latence serveur mesure le traitement des requêtes au niveau de la passerelle GraphQL, hors aller-retour réseau côté client.
Architecture
Une conception ports et adaptateurs qui garde la logique métier découplée de l’infrastructure.
Queries, mutations et subscriptions. Les clients récupèrent exactement ce dont ils ont besoin.
Le cloisonnement par espace de travail est exigé par le système de types et imposé sur chaque requête. Défense en profondeur.
Un binaire compilé, un processus. Ni service mesh, ni déploiements par service.
Zéro sérialisation, zéro latence réseau entre les modules métier.
De nouveaux espaces de travail opérationnels en quelques secondes. Schéma, cloisonnement, configuration — tout est automatisé.
Une conception ports et adaptateurs qui garde la logique métier découplée de l’infrastructure.
Queries, mutations et subscriptions. Les clients récupèrent exactement ce dont ils ont besoin.
Un binaire compilé, un processus. Ni service mesh, ni déploiements par service.
Le cloisonnement par espace de travail est exigé par le système de types et imposé sur chaque requête. Défense en profondeur.
Zéro sérialisation, zéro latence réseau entre les modules métier.
De nouveaux espaces de travail opérationnels en quelques secondes. Schéma, cloisonnement, configuration — tout est automatisé.
Répartition
L’infrastructure backend qui alimente la répartition en temps réel, l’appariement géographique et les charges concurrentes à grande échelle — bâtie sur l’indexation hexagonale H3 au-dessus des sorted sets Redis.
Une réservation, suivie d’un index chaud jusqu’au dernier tour avant l’échéance. Chaque valeur est le réglage par défaut de la plateforme dont part chaque espace client.
Chaque ping de position d’un chauffeur écrit dix identifiants de cellules H3 d’un coup, résolutions 0 à 9. La géographie n’est jamais calculée au moment de la demande — l’index inversé est déjà dans Redis, à l’échelle exacte dont la recherche aura besoin.
39 chauffeurs en ligne · 390 appartenances de cellules · résolutions 0–9, réécrites à chaque ping
Configurable
Séquentiel est l’une des deux stratégies, montrée ici avec les réglages livrés. Broadcast propose à toute une vague de chauffeurs d’un coup et sert de repli par défaut quand la recherche principale ne trouve personne ; portée, élargissement, fenêtre d’offre, budget de relances et pondérations se règlent tous par espace client.
Chaîne d’outils
Chaque couche de la stack a été choisie à dessein — accès à la base typé sûr, traitement des tâches de fond, analytique à grande échelle et traçage distribué complet.
Un OLAP en colonnes pour les indicateurs et tableaux de bord par espace de travail — sans peser sur le PostgreSQL transactionnel.
Du SQL vérifié à la compilation. Typé contre le schéma réel au moment du build — zéro surcoût d’ORM.
Traitement en arrière-plan natif Rust, avec stockage persistant, relances et planification.
Traçage distribué de bout en bout sur les 29 modules — de GraphQL à la base et jusqu’à la réponse.
Frontend
0
% de code réutilisé
0
Composants UI
0
Langues
0
FPS de rendu
Bâti sur les principes de l’atomic design — des atomes élémentaires aux écrans complets prêts pour la production.
Atomes
Champs, boutons, libellés, icônes
Molécules
Barres de recherche, cartes, lignes de liste
Organismes
Navigation, formulaires, tableaux de données
Gabarits
Mises en page, structures, écrans complets
Temps réel
Des positions mises à jour en moins d’une seconde via les GraphQL subscriptions. Aucun polling.
Chaque changement d’état est diffusé instantanément à tous les clients connectés via WebSocket.
APNs + FCM + Web. Des règles configurables par espace de travail pour les événements et les promotions.
Tarifs, régions, devises, règles de livraison — configurables en direct depuis le tableau de bord.
Des positions mises à jour en moins d’une seconde via les GraphQL subscriptions. Aucun polling.
Chaque changement d’état est diffusé instantanément à tous les clients connectés via WebSocket.
APNs + FCM + Web. Des règles configurables par espace de travail pour les événements et les promotions.
Tarifs, régions, devises, règles de livraison — configurables en direct depuis le tableau de bord.
Base de données, cloisonnement de l’espace de travail, configuration, identité de marque — orchestrés de bout en bout sans intervention manuelle.