Credora · Big picture

Where the data comes from, what Exasol does with it, and who uses the result. Numbers give the order of the flow.

SAPPHIRE BANK · AWS RDS OUTSIDE WORLD · credora.link Exasol Personal 2026.1 · r6i.xlarge Mock data generator admin button · clears, then creates 1,000 companies · 2–5 partners each RDS Oracle SE2 · CBS core banking ACCOUNT · TXN (~850k rows) RDS MySQL 8.4 · cif customer master company · partner · rm RDS PostgreSQL 16 · los application (credit need on file) past_loan (5,000 with outcomes) CIBIL (mock) https://cibil.credora.link consumer + commercial reports GSTN (mock) https://gst.credora.link 2–10 years of monthly returns Account Aggregator (mock) https://aa.credora.link partners' other-bank accounts 1 · Read in place: virtual schemas VS_CBS ← Oracle VS 6.0 (Java, ojdbc17) VS_CIF, VS_LOS ← adbc-vs-rs 0.7 (Rust) pushdown · no copy of the bank's data 2 · Fetch outside data: Python UDFs CIBIL_*_FETCH · GST_FETCH · AA_FETCH SET scripts · 16 parallel · bulk calls → CREDORA_STAGE, each row with PURGE_AT 3 · ML trained and scored in Exasol TRAIN_PD: gradient boosting, monotonic PD_SCORE: PD + per-feature attribution model versions in BucketFS models/ 4 · Decide and rank (Lua, 11 steps) 13 features · offer + negotiation limit Approve / Refer / Decline · RAROC PREFERRING skyline → top 50 → DECISIONS 5 · Govern and explain one Exasol user per role · masked view preprocessor → semantic layer:   CREDORA_SEM.PORTFOLIO (15 metrics) PURGE_EXPIRED keeps SHA-256 proof 4 web roles Admin · Data scientist Loan operations · Relationship mgr https://credora.loan Web app · Caddy HTTPS React frontend (static) FastAPI backend · pyexasol data explorer with source tags Exasol report: why and how offers · negotiation · admin exasol-mcp-server (stdio) Claude Anthropic API or Amazon Bedrock Ask Credora · memos RDS PostgreSQL · crm offer · offer_event negotiation + sanction trail one call: EXECUTE SCRIPT CREDORA.RUN_ANALYSIS · about 20 s 1 mock data 2 JDBC/ADBC 3 HTTPS 4 5 SQL :8563 per-role user 6 export offers 7 MCP CREDORA_MCP 8 CREDIT_MEMO on demand asks Legend Bank database / Exasol store Outside-world relay (mock) Exasol compute (UDF, Lua) Governance Web app and users Claude (managed AI) Mock data generator Exasol Source group Solid: synchronous call Dashed: mock data, on demand 1 Order of the flow

Data stays where it lives

  • • Bank data is read in place: Oracle via the Oracle virtual schema, MySQL and PostgreSQL via adbc-vs-rs
  • • Outside parties are reached like real ones: public HTTPS relays on credora.link
  • • Raw API replies are staged with a purge time and deleted with SHA-256 proof

One call does the analysis

  • • RUN_ANALYSIS (Lua) runs 11 logged steps in about 20 s for 1,000 companies
  • • The risk model is trained and scored inside Exasol on 5,000 past loans
  • • PREFERRING ranks approved companies on return, risk and size at once

The database enforces access

  • • Each web role logs in as its own Exasol user; RMs see a masked view
  • • Ask Credora reads as CREDORA_MCP, semantic layer first
  • • Offers and the negotiation trail are written to the bank's crm database