🔧

Architecture & Stack Technique

Monorepo enterprise multi-services — hexagonale · SPI · multi-tenant · dual-API · GitOps autonome

Stack Technique Globale

CoucheTechnologiesServices concernés
Backend principalJava 21 · Spring Boot 3 · Maveneitsarl · marketplace · FreeWa · fintech · Social Agent
Backend secondairePython 3.13 · FastAPIfintech (API simulation/IA)
FrontendAngular 17-19 · SSR · Signals · ngx-translateTous services (standalone components)
Bridge messagingNode.js · whatsapp-web.jsFreeWa (pont WhatsApp multi-tenant)
Bases de donnéesPostgreSQL 16 · MySQL 8 · FlywayPostgreSQL (tous) · MySQL (FreeWa)
CacheRedis 7KamerBuy · FreeWa · fintech
Reverse proxyNginx multi-domaine · Caddy auto-HTTPSNginx (VPS) · Caddy (FreeWa)
ContainerisationDocker Compose (autonome par service)Tous — pas de Kubernetes (VPS single-node)
CI/CDGitHub Actions · GitOps bare repo + hooksTous — branches dev/live + post-receive
TestsJUnit 5 · AssertJ · TestcontainersKamerBuy (intégration PostgreSQL réelle)

Patterns Architecturaux par Service

ServicePatternSpécificités clés
KamerBuyHexagonale par bounded contextcatalog · pricing · order · payment · ledger · iam · notification · shared — Money(long, Currency) immuable, FxService datée, OrderStateMachine explicite
FreeWaMulti-tenant par UUIDSessions WhatsApp isolées par UUID · bridge Node.js indépendant · wallet Unités Internes · rôles SUPERADMIN/ADMIN/CLIENT/AGENT
FintechDual-API Java+PythonSpring Boot métier (Auth JWT, Budget, ERP sync) + FastAPI IA (simulations, recommandations) · WebSocket STOMP chatbot · ERPNext v16 sync
Social AgentSPI + ServiceLoader13 modules Maven · 8 connecteurs plateforme · Spring Boot Starter auto-configuration · extensibilité zero-change (nouvelle plateforme = nouvelle dépendance)
eitsarl · marketplaceREST + SSRSpring Boot 3 · Angular 17 SSR standalone · ngx-translate FR/EN · Admin CMS · SEO-first (référencement B2B Douala)

{{ lang() === 'en' ? 'Notable Architecture Decisions' : 'Décisions d'Architecture Notables' }}

💰

Money immuable (KamerBuy)

Money(long minorUnits, Currency) — jamais de double ou BigDecimal pour le stockage monétaire. Élimine les erreurs d'arrondi dans les calculs de commissions multidevises (FCFA, USD, CNY, EUR). Convention issue de la finance institutionnelle.

🔌

SPI + ServiceLoader (Social Agent)

Extensibilité zéro-friction : ajouter un connecteur Facebook, TikTok ou LinkedIn n'exige aucune modification du core. Il suffit d'ajouter une dépendance Maven. Pattern Open/Closed Principle appliqué à l'architecture modulaire.

🔐

Sessions UUID isolées (FreeWa)

Chaque instance WhatsApp Business est identifiée par UUID unique. L'isolation est garantie en base (chaque tenant opère sur ses propres lignes) et en mémoire (sessions Node.js distinctes). Aucun cross-tenant possible architecturalement.

🐍

Dual-API Java+Python (Fintech)

Java gère la robustesse du domaine métier (Auth JWT, budget, comptabilité OHADA, sync ERPNext). Python gère l'agilité IA (simulations financières, recommandations patrimoniales, chatbot). Séparation claire : JVM pour la fiabilité, Python pour la rapidité d'expérimentation.

DevOps & Conventions de Déploiement

Chaque service est autonome et déployable indépendamment depuis son répertoire. Aucune dépendance au parent du monorepo pour déployer. Le workflow GitOps suit un modèle à deux remotes :

  • terminalmake push-dev → push sur staging (hedcm.com) — hook post-receive déclenche docker compose up --build
  • terminalmake promote → merge dev→live + push sur production (vps.eitsarl.com) — hook prod avec --no-cache
  • terminalServices systemd (eitsarl, marketplace, kamerbuy, eit-infra) gèrent le démarrage au boot et le redémarrage automatique
  • terminalHTTPS obligatoire via certbot Let's Encrypt (webroot) — Nginx multi-domaine ou Caddy auto-HTTPS selon le service

Contributions & Intégrations

  • check_circle_outlineSocial Agent SDK — Spring Boot Starter Maven · contribution connecteurs plateforme (Facebook, TikTok, LinkedIn, X, YouTube, Snapchat, Threads) · contact@eitsarl.com
  • check_circle_outlineKamerBuy API — OpenAPI 3 · dropshipping B2B (5 %) · integration partenaire logistique · contact@eitsarl.com
  • check_circle_outlineFreeWa API — REST Spring Boot 3 · bridge Node.js · intégration whatsapp-web.js · white-label possible

Prêt à passer à l'étape suivante ?

Contactez-nous — nous répondons sous 24h ouvrées.