APERÇU TECHNIQUE

Bâti avec Rust.
Mesuré en millisecondes.

Monolithe modulaire. 29 modules métier. Un seul binaire compilé qui délivre 4× le débit pour une fraction des ressources.

Benchmarks

Même charge. Même matériel.
Des résultats différents.

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

29 modules métier. Un seul binaire compilé.

Architecture hexagonale

Une conception ports et adaptateurs qui garde la logique métier découplée de l’infrastructure.

Domain-Driven Design

1 100+ opérations GraphQL

Queries, mutations et subscriptions. Les clients récupèrent exactement ce dont ils ont besoin.

GraphQL

Déploiement mono-binaire

Un binaire compilé, un processus. Ni service mesh, ni déploiements par service.

Rust / compilé

Cloisonnement des espaces

Le cloisonnement par espace de travail est exigé par le système de types et imposé sur chaque requête. Défense en profondeur.

Imposé par les types

Appels intra-processus

Zéro sérialisation, zéro latence réseau entre les modules métier.

Monolithe modulaire

Provisionnement automatique

De nouveaux espaces de travail opérationnels en quelques secondes. Schéma, cloisonnement, configuration — tout est automatisé.

En autonomie

Répartition

Affectation en temps réel. Indexée en hexagones.

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.

Moteur de répartition

Une grille hexagonale H3 au-dessus des sorted sets Redis, avec un filtre de rayon exact sur les candidats.

H3Redis GeoTokio

Chaîne d’outils

Qualité production. À chaque couche.

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.

ClickHouse

Analytique

Un OLAP en colonnes pour les indicateurs et tableaux de bord par espace de travail — sans peser sur le PostgreSQL transactionnel.

En colonnesOLAP

SQLx

Accès aux données

Du SQL vérifié à la compilation. Typé contre le schéma réel au moment du build — zéro surcoût d’ORM.

À la compilationTypé sûr

Apalis

File de tâches

Traitement en arrière-plan natif Rust, avec stockage persistant, relances et planification.

Tâches de fondPersistant

OpenTelemetry

Observabilité

Traçage distribué de bout en bout sur les 29 modules — de GraphQL à la base et jusqu’à la réponse.

TraçageMétriques

Frontend

Une base de code. Toutes les surfaces.

0

% de code réutilisé

0

Composants UI

0

Langues

0

FPS de rendu

200+ composants. Atomic design.

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

Données en direct. Config instantanée.

Suivi en direct

Des positions mises à jour en moins d’une seconde via les GraphQL subscriptions. Aucun polling.

Suivi de commande

Chaque changement d’état est diffusé instantanément à tous les clients connectés via WebSocket.

Notifications push

APNs + FCM + Web. Des règles configurables par espace de travail pour les événements et les promotions.

Logique métier

Tarifs, régions, devises, règles de livraison — configurables en direct depuis le tableau de bord.

De l’inscription à la mise en ligne en quelques secondes.

Base de données, cloisonnement de l’espace de travail, configuration, identité de marque — orchestrés de bout en bout sans intervention manuelle.

Commencer