Technical Architecture
Atom NEXT adopts a modern, layered architecture to ensure high maintainability, testability, and scalability.
Layered Design
The system is divided into three primary layers, ensuring clear separation of concerns:
1. UI Layer (View)
- Responsible for data collection and display.
- Decoupled from business logic using Jetpack ViewModel.
- Supports multiple screen types (horizontal/vertical) and resolutions without affecting business modules.
2. Business Layer (Controller)
- Controller Module: Controls the execution steps of specific business functions (e.g., Sale, Void).
- ISO8583-Transactions: Implements message protocols, packing/unpacking, and network communication.
- Core Business: Handles basic logic, data definitions, and general financial operations.
3. Model Layer (Data)
- Room Persistence: An object-oriented interface for the SQLite database, used for transaction logs and merchant parameters.
- MMKV: High-performance key-value storage for lightweight persisted data.
System Structure

Module Overview
- Host Module: Initializes the application, loads configurations, and manages module lifecycle.
- ViewModel Module: Acts as the bridge between UI and Controller.
- EMV Module: Encapsulates the complex logic of bank card interactions via
atomnext-lib. - Communication Module: Supports multiple protocols including Socket, SSL, and HTTP/HTTPS.
- Log Module: Provides leveled logging with remote upload capabilities for troubleshooting.