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