Skip to main content

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

ATOM 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.