Overview

Technical choices

Every technology justified by a requirement of your specification.

Every technology answers a constraint named in your specification.

LayerTechnologyWhy, for ERK+
WebReactA rich, reactive dashboard; responsive (all screen sizes), works on Chrome, Firefox, Safari, Edge
MobileReact Native + ExpoOne codebase for iOS 14+ / Android 9+ with native rendering — smooth on the entry-level phones that dominate in Senegal
High-concurrency servicesGoAuth, Site, Notifications: thousands of concurrent connections on a tiny footprint
Critical modulesRustFinance & Media: memory safety, arithmetic precision, vault encryption
API GatewayTraefikSingle entry point: TLS termination, dynamic routing, load balancing
Event busNATS + JetStreamPersistent async communication — no message lost, full traceability
ProtocolsgRPC (internal) · GraphQL (mobile)Fast typed/binary internal exchanges; mobile transfers only what it needs
Transactional databasePostgreSQLACID for the consistency of financial data
Cache & real-timeRedisSessions and live data (e.g. site cameras)
Object storageMinIO (S3-compatible)Documents, photos, videos — self-hosted
Containers & orchestrationDocker · KubernetesAuto-scaling (2,000 users), Blue-Green zero-downtime deploys
CI/CDGitHub · GitHub ActionsBuild + tests on every push, dependency security scanning (DevSecOps), containerisation

Why Go and Rust

These are not niche choices. Go runs Google, Uber, Cloudflare, as well as Docker and Kubernetes (both written in Go). Rust is adopted by Microsoft, AWS, Cloudflare and Discord for their critical systems, and has entered the Linux kernel and Android. We put this world-class technology to work for your project.

  • Go compiles to a single binary, starts in milliseconds and holds thousands of connections on a small memory footprint — decisive to sustain 2,000 users on a cost-controlled infrastructure.
  • Rust brings memory safety without a garbage collector and infallible arithmetic — what a financial ledger and a vault's encryption demand.
  • PostgreSQL brings the ACID transactions a reliable payment ledger requires.
  • One Rust core, reused everywhere: media compression and validation are written once, then compiled to WebAssembly for the web, to native for mobile, and to a server binary.

The 3-second ceiling

Every millisecond of the journey is budgeted; going over breaks the build.

Request lifecycle

0.55s measured / 3.0s budget

  1. Client 4GDNS · TLS 1.3 resume+180ms
  2. TraefikTLS · routing · LB+120ms
  3. AuthJWT · RBAC scope+100ms
  4. Go servicegRPC · business logic+90ms
  5. PostgreSQLindexed query+60ms
  6. Renderedinteractive page≈ 0.55s

The 3s ceiling is a blocking gate in our delivery pipeline — not an intention. Server-side budget above; the rest is bandwidth.

Slow-network optimisation

  • Offline: an embedded SQLite database on mobile → data entry with no network, automatic sync when the connection returns
  • Photos (web): in-browser pre-compression via a Rust → WebAssembly module before upload — a lighter upload (up to −70%), decisive on 3G/4G; the module is loaded on demand to preserve the 3-second budget
  • Video: server-side (Rust) compression, streams optimised for 4G bandwidth
  • Images adapted to screen and real throughput, lazy-loaded
  • The 3-second ceiling verified on every integration
ERK+× Vortex-Soft

Vortex-Soft's technical proposal for ERK+, ERK Group's construction project management platform — Dakar, Senegal.

Vortex-Soft
Vortex-Soft
© 2026 Vortex-Soft — DakarConfidential document prepared for ERK Group.