CardDemo
CardDemo is a comprehensive mainframe application that simulates a credit card management system.
Core trick
Ports COBOL JCL batch jobs to Rust and SQLite, timed against the original nightly cycle.
Tags
Description
CardDemo is a comprehensive mainframe application that simulates a credit card management system. Designed specifically to showcase AWS and partner technologies for mainframe migration and modernization scenarios, it provides a realistic environment for testing various modernization approaches including discovery, migration, performance testing, service enablement, and more.
README excerpt
# 🏦 CardDemo Mainframe → Safe Rust + SQLite + React 19 (`as400`) **Track:** Problem Statement 1 (*Million Token Engineering*) + **Best Use of Managed Agents (\$5,000)** **Agent & Model:** `antigravity-preview-09-2026` + `gemini-4-argon` (1M Context Window) **Legacy Source:** [`aws-samples/aws-mainframe-modernization-carddemo`](https://github.com/aws-samples/aws-mainframe-modernization-carddemo) (~120 files across 8 mainframe technologies) --- ## 📊 Measured Improvement Over Golden Mainframe Baseline | Metric | Legacy Mainframe (`CardDemo` JCL + CICS) | Modernized Stack (`carddemo-modern` Safe Rust + React 19) | Measured Improvement | | :--- | :--- | :--- | :--- | | **Nightly JCL Batch Cycle (`COMBTRAN` + `POSTTRAN` + `INTCALC` + `CREASTMT`)** | `412.40 ms` | **`~4.26 ms`** | **96.8x – 140x Faster** | | **50-Account Golden Financial Parity (`acctdata` + `dailytran` + `tcatbal`)** | Baseline (`$91,502.86` total ending balance) | **`50 / 50 Accounts Matched ($91,502.86)`** | **`100.00%` (`$0.00` Max Cent Drift)** | | **Daily Transaction Validation (`CBTRN02C`)** | 262 Posted / 38 Rejected (`DALYREJS`) | **262 Posted / 38 Rejected (`DALYREJS`)** | **100% Rule & Reason Code Parity (`100`, `102`, `103`)** | | **Online Bill Payment Workflow (`COBIL00C` / `CBIL`)** | `54.0 s` (`CC00 → CM00 → 05 → Acct → Y`) | **`< 1.5 ms` (1-Click Settlement)** | **99.9% Latency & Keystroke Reduction** | | **Memory & Decimal Safety** | Raw EBCDIC Overpunch / Unchecked Buffers | **`#![forbid(un