Platform of phone pe:
They designed their own platform inspired from the android operating system.
The entire platform is designed with two core principles – Centralise & Stabilize and Distributed Architecture
Centeralise and stabilize:
Centralizing the components allows us to invest more time on problems and lets us devise a sustainable solution.
This approach allows us to innovate in one central layer, and everyone benefits from it.
Distributed architecture :
In PhonePe’s build system, one has to define the layer in which they want to add the module. Moreover, these modules have to be at a specific path and should follow a naming convention. Enforcing the constraints at the build stage itself helps us to organize and maintain our rapidly growing code.
We have written our build system and configurations using Kotlin and Kotlin Scripts (kts).
Layers of phone pe:
The PhonePe app is divided into four layers; the bottom-most layer is called the Platform capabilities layer, this is followed by the PhonePe Core or Kernel layer, then comes the Application Framework layer, and the top-most Application layer . As we go from bottom to top, the layers start becoming more specific to the use- cases.
Platform Layer – This layer is inspired by the Hardware layer of an operating system. This layer will have integrations with platform capabilities such as networks, databases, and encryptions. This layer is PhonePe independent and contains modules that are not specific to PhonePe. This layer has modules such as Databases, Preferences, Network, and Encryptions. We use platform modules (android/iOS), and native modules written in C/C++ in this layer.
Core layer-This layer also integrates with network capabilities in the context of PhonePe. Therefore, it will also have responsibilities such as token management, pub-sub integration, sync management, etc.
This characteristic makes it a potential candidate for the code-sharing layer between various platforms. We have chosen to implement this layer with either platform-specific modules or kotlin multi-platform modules
Application framework layer-
This layer has modules which are mostly use-case independent and can cater to multiple use-cases. This layer might also have UI involved, and it might understand the specifics and nuances of specific platforms, such as the Android UI system. This layer mostly contains modules written in platform-specific modules.
Application layer-This layer contains all the MicroApps that can execute on the PhonePe platform. This layer supports apps written in platform-specific modules, PWA, and React Native. Micro apps are written both internally and outside of PhonePe.
The above points taken from: