[{"data":1,"prerenderedAt":258},["ShallowReactive",2],{"navigation_docs_en":3,"-en-architecture":52,"-en-architecture-surround":253},[4,14,32,42],{"title":5,"path":6,"stem":7,"children":8},"The essentials","/en/proposition","en/1.proposition/1.index",[9,10],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Your need, understood","/en/proposition/comprehension","en/1.proposition/2.comprehension",{"title":15,"path":16,"stem":17,"children":18},"Overview","/en/architecture","en/2.architecture/1.index",[19,20,24,28],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Technical choices","/en/architecture/stack","en/2.architecture/2.stack",{"title":25,"path":26,"stem":27},"Security & compliance","/en/architecture/securite","en/2.architecture/3.securite",{"title":29,"path":30,"stem":31},"The 19 modules","/en/architecture/modules","en/2.architecture/4.modules",{"title":33,"path":34,"stem":35,"children":36},"The 8-month plan","/en/roadmap","en/3.roadmap/1.index",[37,38],{"title":33,"path":34,"stem":35},{"title":39,"path":40,"stem":41},"The method","/en/roadmap/methodologie","en/3.roadmap/2.methodologie",{"title":43,"path":44,"stem":45,"children":46},"Vortex-Soft","/en/equipe","en/4.equipe/1.index",[47,48],{"title":43,"path":44,"stem":45},{"title":49,"path":50,"stem":51},"References — eCampus","/en/equipe/references","en/4.equipe/2.references",{"id":53,"title":15,"badge":54,"body":55,"category":54,"description":246,"extension":247,"links":54,"meta":248,"navigation":250,"path":16,"seo":251,"stem":17,"tags":54,"__hash__":252},"docs_en/en/2.architecture/1.index.md",null,{"type":56,"value":57,"toc":238},"minimark",[58,75,80,83,86,93,97,100,104,114,206,213,217],[59,60,61,62,66,67,70,71,74],"p",{},"Our choices do not come from a catalogue. They follow, one by one, from four figures in your specification: ",[63,64,65],"strong",{},"≤ 3 seconds on 4G",", ",[63,68,69],{},"99.5%"," availability, ",[63,72,73],{},"2,000 concurrent users",", and a roadmap that reaches all the way to banking. Add FR/EN bilingual, partial offline and bank-grade security, and you get the set of constraints below — translated into a system.",[76,77,79],"h2",{"id":78},"the-end-to-end-architecture","The end-to-end architecture",[59,81,82],{},"Here is ERK+ in full — from a site manager's smartphone all the way to encrypted backups replicated across three sites. Each node carries its technology's real logo; the dots travelling along the links are actual requests in flight.",[84,85],"erk-stack-schematic",{},[59,87,88,89,92],{},"Every layer has a single responsibility and a single reason to change. The client never talks directly to the database; the database never knows a user's identity; the business core has no idea whether it was called from the web, iOS or the desktop app. This separation is not theory: it is what makes a system ",[63,90,91],{},"auditable, testable and fixable under pressure",".",[76,94,96],{"id":95},"the-same-stack-seen-in-volume","The same stack, seen in volume",[98,99],"erk-isometric-stack",{},[76,101,103],{"id":102},"the-style-a-modular-monolith","The style: a modular monolith",[59,105,106,107,110,111,92],{},"We take a deliberate stance against the microservices fashion. ERK+ is a ",[63,108,109],{},"modular monolith",": the logical boundaries are those of microservices, but there is ",[63,112,113],{},"only one artefact to deploy, monitor and keep at 99.5%",[115,116,117,132],"table",{},[118,119,120],"thead",{},[121,122,123,126,129],"tr",{},[124,125],"th",{},[124,127,128],{},"Classic microservices",[124,130,131],{},"Modular monolith (our choice)",[133,134,135,150,164,178,192],"tbody",{},[121,136,137,141,144],{},[138,139,140],"td",{},"Internal latency",[138,142,143],{},"Network between services",[138,145,146,149],{},[63,147,148],{},"None"," — in-memory calls",[121,151,152,155,158],{},[138,153,154],{},"Infra cost",[138,156,157],{},"High (N services, N databases)",[138,159,160,163],{},[63,161,162],{},"Divided"," — decisive on an African budget",[121,165,166,169,172],{},[138,167,168],{},"Operational complexity",[138,170,171],{},"Orchestration, service mesh",[138,173,174,177],{},[63,175,176],{},"One deployment",", a team of three",[121,179,180,183,186],{},[138,181,182],{},"Transactions",[138,184,185],{},"Distributed, fragile",[138,187,188,191],{},[63,189,190],{},"Native ACID"," — critical for payments",[121,193,194,197,200],{},[138,195,196],{},"V2 evolution",[138,198,199],{},"Already fragmented",[138,201,202,203],{},"Extraction ",[63,204,205],{},"module by module, no rewrite",[59,207,208,209,212],{},"The bet is simple: at ERK+'s scale (one company, a few thousand users) the cost of microservices is paid up front without the benefit. The day the V2 marketplace requires pulling the Payments module out into its own service, the ",[63,210,211],{},"event bus is already there"," to do it cleanly — without touching the rest.",[76,214,216],{"id":215},"ready-for-your-v2-and-v3","Ready for your V2 and V3",[218,219,220,228,231],"ul",{},[221,222,223,224,227],"li",{},"Module boundaries aligned with your ",[63,225,226],{},"8 functional families"," — not with database tables",[221,229,230],{},"The V1 payment ledger is already structured for multi-merchant flows (V2) and financial products (V3)",[221,232,233,234,237],{},"A ",[63,235,236],{},"versioned, documented API from day one",": what is published never breaks an existing client",{"title":239,"searchDepth":240,"depth":240,"links":241},"",2,[242,243,244,245],{"id":78,"depth":240,"text":79},{"id":95,"depth":240,"text":96},{"id":102,"depth":240,"text":103},{"id":215,"depth":240,"text":216},"A sober, proven architecture sized for your constraints.","md",{"icon":249},"lucide:layers",true,{"title":15,"description":246},"AhGQ8bUnM8a5ADY-9X8qS6-B1QboV87b0UNwaqln6cA",[254,256],{"title":11,"path":12,"stem":13,"description":255,"children":-1},"What we read between the lines of the specification.",{"title":21,"path":22,"stem":23,"description":257,"children":-1},"Every technology justified by one of your requirements.",1784147240062]