TungDaDev's Blog

Backbase — Digital Banking Platform

Temp img.png
Published on
/6 mins read/

# backbase là gì?

Backbase là platform thương mại (commercial) chuyên xây dựng digital banking experiences. Thay vì ngân hàng tự build từ zero (mất 2-5 năm), Backbase cung cấp ready-made platform với UI components, backend services, và integration layer — ngân hàng customize và deploy trong 6-12 tháng.

Nói đơn giản: Backbase = "Shopify for banks." Bạn không build e-commerce engine từ scratch, bạn dùng Shopify rồi customize. Tương tự, ngân hàng không build digital banking platform từ scratch, dùng Backbase rồi customize branding, features, integrations.

Target: Retail banking (cá nhân), SME banking, Wealth management, Corporate banking. Customers: Hơn 150 ngân hàng toàn cầu — HSBC, Lloyds, Rabobank, Banorte...

# kiến trúc tổng quan

Backbase theo mô hình MACH Architecture (Microservices, API-first, Cloud-native, Headless):

┌─────────────────────────────────────────────────────────────────┐
│                    Digital Channels                               │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐       │
│  │  Web App │  │Mobile App│  │  Chatbot │  │  Kiosk   │       │
│  │ (Angular)│  │(iOS/And) │  │          │  │          │       │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘       │
│       │              │              │              │              │
│  ─────┴──────────────┴──────────────┴──────────────┴──────       │
│                    Experience Layer (BFF)                          │
└───────────────────────────────┬──────────────────────────────────┘
                               │
┌───────────────────────────────┴──────────────────────────────────┐
│                    Backbase Platform                               │
│                                                                   │
│  ┌──────────────────────────────────────────────────────────┐    │
│  │              Capability Services (Microservices)           │    │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐       │    │
│  │  │Accounts │ │Payments │ │  Cards  │ │Contacts │       │    │
│  │  │ Service │ │ Service │ │ Service │ │ Service │       │    │
│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘       │    │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐       │    │
│  │  │  Loans  │ │Notific. │ │  Users  │ │  Audit  │       │    │
│  │  │ Service │ │ Service │ │ Service │ │ Service │       │    │
│  │  └─────────┘ └─────────┘ └─────────┘ └─────────┘       │    │
│  └──────────────────────────────────────────────────────────┘    │
│                                                                   │
│  ┌──────────────────────────────────────────────────────────┐    │
│  │              Foundation Services                           │    │
│  │  Identity & Access │ Event Bus │ DBS │ Entitlements       │    │
│  └──────────────────────────────────────────────────────────┘    │
└───────────────────────────────────┬──────────────────────────────┘
                                   │
┌───────────────────────────────────┴──────────────────────────────┐
│                    Integration Layer                               │
│  ┌──────────────────────────────────────────────────────────┐    │
│  │   Core Banking     │   Card Processor  │   Payment Hub   │    │
│  │   (T24, Finacle)   │   (Visa, MC)      │   (SWIFT, ACH)  │    │
│  └──────────────────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────────────────┘

# core concepts

# dbs (digital banking services)

DBS là API layer giữa Backbase platform và core banking systems. Nó abstract core banking complexity thành standardized REST APIs. Ngân hàng đổi core banking (T24 → Finacle) → chỉ cần rewrite integration adapter, Backbase apps KHÔNG thay đổi.

# model bank

Backbase ship "Model Bank" — reference implementation sẵn sàng chạy. Ngân hàng clone Model Bank rồi customize thay vì build from scratch. Giống starter template.

# widgets & journeys

Widget: UI component nhỏ, reusable (account summary, transaction list, transfer form). Journey: Full user flow (onboarding journey, loan application journey) = sequence of widgets + orchestration logic.

# entitlements

Permission system multi-level: User → Service Agreement → Function Group → Privileges. Ví dụ: User A thuộc company X, có Function Group "Payments Maker" với privilege "Create Domestic Payment" lên đến 500 triệu.

# tech stack

LayerTechnology
FrontendAngular (web), iOS/Android native
BFFSpring Boot (Experience Services)
BackendSpring Boot microservices (Java 17+)
API GatewayCustom (Edge Service) hoặc Kong/Nginx
DatabaseMySQL/PostgreSQL per service
MessagingActiveMQ / Kafka
IdentityKeycloak (IAM), OAuth2/OpenID Connect
ContainerizationDocker + Kubernetes
BuildMaven, Jenkins/GitLab CI
DocumentationOpenAPI 3.0 (mỗi service có spec)

# spring boot services anatomy

Mỗi Backbase capability service là Spring Boot application với structure:

capability-service/
├── src/main/java/
│   ├── config/          # Spring configuration
│   ├── rest/            # REST controllers (auto-generated from OpenAPI)
│   ├── service/         # Business logic
│   ├── mapper/          # DTO ↔ Domain mapping
│   ├── integration/     # Integration with core banking
│   ├── persistence/     # JPA entities, repositories
│   └── listener/        # Event listeners
├── src/main/resources/
│   ├── application.yml
│   └── api/             # OpenAPI specs
└── pom.xml

# integration patterns — kết nối core banking

Backbase KHÔNG phải core banking — nó là engagement layer. Data thật (accounts, balances, transactions) nằm ở core banking system (T24, Finacle, Temenos Infinity). Backbase pull/push data qua Integration Services.

# ingestion pattern (batch/event-driven)

Core Banking → Event/Batch → Backbase DBS (persist) → Backbase Apps (fast reads)

Data ingested vào Backbase's own database cho fast reads. Users truy cập Backbase DB (milliseconds) thay vì hit core banking trực tiếp (seconds).

// Ingestion service: pull transactions from core banking, persist to Backbase DB
@Service
@RequiredArgsConstructor
@Slf4j
public class TransactionIngestionService {
 
   private final CoreBankingClient coreBankingClient;
   private final TransactionRepository backbaseRepository;
 
   @Scheduled(fixedRate = 300000)  // Every 5 minutes
   public void ingestTransactions() {
       LocalDateTime lastSync = backbaseRepository.getLastSyncTimestamp();
 
       List<CoreTransaction> newTransactions = coreBankingClient
           .getTransactionsSince(lastSync);
 
       List<BackbaseTransaction> mapped = newTransactions.stream()
           .map(this::mapToBackbase)
           .toList();
 
       backbaseRepository.saveAll(mapped);
       log.info("Ingested {} transactions from core banking", mapped.size());
   }
}

# pass-through pattern (real-time)

Backbase App → Backbase Service → Core Banking (real-time call) → Response

Cho operations cần real-time data (create payment, check real-time balance).

# customization — extending backbase

Ngân hàng customize Backbase qua:

  1. Behavior Extensions: Override/extend service behavior qua Spring Boot hooks
  2. Custom Services: Thêm microservice mới cho bank-specific features
  3. Widget Customization: Fork/extend Angular widgets
  4. Integration Adapters: Connect tới bank's specific core banking
// Extending Backbase Payment service behavior
@Configuration
public class CustomPaymentConfig {
 
   @Bean
   @Primary  // Override default implementation
   public PaymentValidator customPaymentValidator(
           SanctionScreeningClient sanctionClient,
           FraudDetectionClient fraudClient) {
       return new EnhancedPaymentValidator(sanctionClient, fraudClient);
   }
}
 
// Custom pre-processing hook
@Component
@Order(1)
public class FraudCheckInterceptor implements PaymentPreProcessor {
 
   @Override
   public void process(PaymentOrder payment) {
       FraudScore score = fraudService.evaluate(payment);
       if (score.isHighRisk()) {
           payment.setStatus(PaymentStatus.PENDING_REVIEW);
           throw new PaymentHeldException("Held for fraud review");
       }
   }
}

# so sánh backbase vs build-from-scratch

AspectBackbaseCustom Build
Time to market6-12 months2-5 years
Cost upfrontLicense fee (high)Development cost (very high)
MaintenanceVendor updates + custom100% your responsibility
FlexibilityWithin platform constraintsUnlimited
Best forBanks wanting speedBanks with unique requirements
RiskVendor lock-inTechnical debt, team dependency
CompliancePre-certified (PCI, etc.)Must certify yourself

Khi nào chọn Backbase: Ngân hàng truyền thống muốn digital transformation nhanh, có budget cho license, chấp nhận platform constraints.

Khi nào custom build: Fintech/neobank với business model unique, cần full control, team kỹ thuật mạnh, time-to-market không phải priority #1.

Chỉ là những ghi chép cá nhân với hy vọng mang lại chút giá trị. Nếu thấy hữu ích, đừng ngại chia sẻ cho bạn bè & đồng nghiệp nhé!

Happy coding 😎 👍🏻 🚀 🔥.

← Previous postActiviti 8
Next post →T24