Engineered as a high-availability enterprise banking system solution (named National Bank) compliant with Jakarta EE (J2EE) standards, this system leverages a modular split-directory Enterprise Archive (EAR) architecture comprising Authentication, Banking, Core, and Web modules to orchestrate critical financial operations through extensive Enterprise JavaBean (EJB) integration. The core logic is driven by a resilient EJB Timer Service infrastructure, utilizing thread-safe @Singleton beans like InterestCalculatorService for declarative @Schedule cron-based daily interest compounding, and programmatic TimerConfig with persistence to handle customer-defined transfer schedules that survive server restarts via a @Startup TransactionInitializer and TimerCleanupService. Data integrity under high-concurrency loads is strictly enforced using Container-Managed Transactions (CMT) with granular propagation strategies, specifically REQUIRES_NEW for isolated timer execution, MANDATORY for account debit/credit operations, and SUPPORTS for read-only reporting alongside pessimistic locking via @Lock(LockType.WRITE) to prevent race conditions. Security is architected through a multi-layered model combining declarative @RolesAllowed RBAC (CUSTOMER, BANK_OFFICER, HR_DEPARTMENT) with custom AOP interceptors (SecurityInterceptor bound to @SecureAccess and LoggingInterceptor bound to @Loggable) that integrate with a J2EE IdentityStore and HttpAuthenticationMechanism utilizing @AutoApplySession. Operational resilience is further guaranteed by a comprehensive custom exception hierarchy (e.g., InsufficientFundsException, TransactionFailedException) annotated with @ApplicationException(rollback=true) to ensure atomic rollbacks. This Utilizes JPA (Java Persistence API) for persistence (In development phase this was within an environment powered by Payara Server 6 and MySQL).