Vritti August 2020 | Page 16

16 vritti August 2020 Technically Speaking Design Constraints ® To support diverse lines of business in a uniform way, mobiquity platform implements a more generic way of handling payments with below design constraints: Maintain single code base for all our clients. Extensibility at core to meet changing needs and client specific customisation without changing core platform. Any addition of new line of business does not impact core payment processing platform. Consistent money movement Immutable Auditable Zero Sum Principle of accounting Getting Architecture Right Journey started with finding best architecture pattern to fit in design constraints and ended with an “event driven micro service” architecture mix of choreography and orchestration. Our engineering team re-wrote all our code into modular services build on top a messaging infrastructure. At high level, architecture looks like as below. USSD User Profile Document Authentication Authorisation Web for business users Payment API Service Flow Orchestrator Command Events RabitMQ Message Bus Event processing Wallet Limit & Threshold Accounting Pricing Engine Audit Instrument vault Mobile App Notification Order Service Micro Services