Introduction
1. Executive Summary
This case study analyzes the architectural design of the Internet Banking System for a fictional financial institution, “BigBank.” The goal of the project was to provide personal banking customers with secure, accessible, and multi-channel access to their accounts (via web and mobile) while integrating with existing legacy core banking infrastructure.
The architecture is documented using the C4 Model (Container Diagram), which visualizes the high-level technology choices and how the system’s containers (applications, databases, etc.) interact.

2. Business Challenges
-
Legacy Integration: The bank possesses a robust but older “Mainframe Banking System” that holds the core truth of customer data. The new system needed to expose this data without replacing the mainframe immediately.
-
Multi-Channel Access: Customers demanded access via both desktop browsers and mobile devices.
-
Security: Handling sensitive financial data requires strict authentication and secure communication channels.
3. Architectural Solution (The C4 Container View)
The solution is designed as a decoupled system where the presentation layer is separated from the business logic and data layers.
A. The User Interface Layer (Frontends)
The system supports three distinct entry points for the Personal Banking Customer:
-
Single-Page Application (SPA):
-
Technology: JavaScript and Angular.
-
Role: This runs in the customer’s web browser. It provides the full suite of internet banking functionality. It is a dynamic, responsive interface that communicates asynchronously with the backend.
-
-
Web Application:
-
Technology: Java and Spring MVC.
-
Role: This acts as the entry point for the web experience. It delivers the static content (HTML/CSS/JS) and hosts the Single-Page Application. It serves as the “launcher” for the Angular app.
-
-
Mobile App:
-
Technology: Xamarin (allowing for cross-platform development, likely iOS and Android).
-
Role: Provides a “limited subset” of functionality optimized for mobile devices. This suggests that complex tasks (like setting up international wires) might be restricted to the full Web/SPA interface, while common tasks (checking balance) are available on mobile.
-
B. The Business Logic Layer (Backend)
-
API Application:
-
Technology: Java and Spring MVC.
-
Role: This is the central nervous system of the architecture. It acts as an API Gateway or Backend-for-Frontend (BFF).
-
Function: It exposes a JSON/HTTPS API to the Web and Mobile clients. It handles authentication, authorization, and orchestration of data requests.
-
C. The Data & Integration Layer
-
Database:
-
Technology: Oracle Database Schema.
-
Role: Stores internet-banking specific data. This includes user registration info, hashed authentication credentials (security best practice), and access logs. It does not store the actual bank balances (those are in the Mainframe).
-
Communication: The API Application reads/writes to this via JDBC.
-
-
Mainframe Banking System:
-
Role: The System of Record. It stores core banking info (customers, accounts, transactions).
-
Communication: The API Application talks to the Mainframe using XML over HTTPS. This indicates the Mainframe is likely a legacy SOAP-based service or an older system requiring structured XML data exchange.
-
-
E-mail System:
-
Technology: Microsoft Exchange.
-
Role: Handles notifications.
-
Communication: The API Application sends emails via SMTP to the Exchange server, which then delivers them to the customer.
-
4. Key Data Flows & User Journeys
Scenario 1: Logging in via Web Browser
-
The Personal Banking Customer navigates to
bigbank.com/ibusing HTTPS. -
The request hits the Web Application (Java/Spring MVC).
-
The Web Application delivers the Single-Page Application (Angular) to the customer’s browser.
-
The customer enters credentials in the SPA.
-
The SPA makes an API call (
JSON/HTTPS) to the API Application. -
The API Application validates the credentials against the Database (via JDBC).
-
Upon success, the SPA requests account balances. The API Application fetches this data from the Mainframe Banking System (
XML/HTTPS) and returns it to the SPA.
Scenario 2: Mobile Transaction Notification
-
The customer makes a payment via the Mobile App (Xamarin).
-
The App sends a request to the API Application.
-
The API Application processes the payment with the Mainframe.
-
The API Application triggers a confirmation email by sending an SMTP request to the E-mail System (Exchange).
-
The customer receives an email notification.
5. Technical Highlights & Best Practices
-
Separation of Concerns: The diagram clearly separates the “Internet Banking” specific data (Oracle DB) from the “Core Banking” data (Mainframe). This prevents the web layer from directly touching the core financial ledger.
-
Protocol Translation: The API Application acts as a translator. Modern frontends speak JSON, but the legacy backend speaks XML. The API Application bridges this gap.
-
Security: Credentials are stored as “hashed” in the database, ensuring that even if the database is compromised, raw passwords are not exposed. All external communication uses HTTPS.
-
Scalability: By using a Single-Page Application (Angular) and a decoupled API, the frontend can be scaled independently of the backend logic.
