NLZ pipeline, queue processing, and OLZ vs NLZ step comparison
Key differences from OLZ: parallel fetch in Step 1, inline eligibility/compliance (no FICO), fire-and-forget notifications, Kafka events, audit at every step.
Timer-based .NET BackgroundService replaces OLZ Quartz cron. Checks business hours/holidays, fetches queued records via MediatR, calls cam-movemoney-process-api for each.
| Step | NLZ (cam-movemoney-process-api) | OLZ (investor-ach-api) | Change |
|---|---|---|---|
| 1 | PARALLEL: AccountDetails + Restrictions + Transfers + Beta Instructions | Sequential: LplSqlDb → BodsDb → WwsClient | Improved |
| 2 | Map + insert to DB via cam-system-api (Status=Received) | CmRequestFactory → CashMgmtDb.InsertCmRequest | Refactored |
| 3 | Enqueue notification (fire-and-forget BackgroundQueue) | NotificationClient.InsertSingleNotification (sync) | Improved |
| 4 | RTT → Submitted via IRttClient + cam-system-api | RttDirector.UpdateRequestStatus (direct HTTP) | Refactored |
| 5a | Inline EligibilityService: acct class, BORD, house acct, high-dollar | FICO external HTTP: BetaLookup + Eligibility | Replaced |
| 5b | Inline ComplianceService: reg type, employee class code | FICO external HTTP: Compliance | Replaced |
| 6 | Status → Approved (audit logged) | No separate approved step | New |
| 7 | Check Beta off-hours → queue if needed | PostAchContribution checks inline | Refactored |
| 8 | PostBetaAsync via cam-system-api → BETA (Refit) | BetaDirector.PostAchContribution (HttpClient) | Refactored |
| 9 | Patch Beta identifiers + audit trail | No explicit patch step | New |
| 10 | Status → Completed, RTT → Completed, Kafka event | RTT → Completed (no Kafka) | New |