Appearance
Appendix — Tonder → Vecnet construct mapping
The complete mapping from Tonder's AWS/NoSQL constructs to their Vecnet/Supabase replacements.
| Tonder | Vecnet | Reference |
|---|---|---|
DynamoDB tables (AccountsTable, JournalsTable, …) | Postgres tables | Data model |
MongoDB (financesJournals, financesFeeRules, …) | — (folded into Postgres) | no query mirror |
DynamoDB PK/SK | columns + unique constraints | accounts |
process_id-index dedup + IdempotencyTable (120s) | unique(process_id, category) + ON CONFLICT | Idempotency |
AccountUpdateQueue (FIFO) + ADD + version + maxReceiveCount=160 | one DB transaction + SELECT … FOR UPDATE | The big shift · posting |
TransactionEventsQueue (EventBridge→SQS) | pgmq / transaction_events + advisory locks | Ingestion |
SettlementJournalsQueue | UPDATE … WHERE id = ANY(:ids) | Settlements |
| CloudWatch crons | pg_cron | RR · Daily ledger |
| Step Functions (bulk) | bulk_jobs + worker | M8 |
| S3 reports | Supabase Storage | Daily ledger |
| Lambda + Middy + Inversify + RxJS | Edge Functions + Postgres fns; async/await; keep hexagonal | Tech stack |
Platform entity T1 | V1 | Rails |
tonder/acquirer fee side label | platform/acquirer | Fee calc |
Acquirers (kushki,unlimit,stp,…) | rails (tonder,menta,…) | Rails |
validateBalance warns | posting fn rejects imbalance | posting |
| Ledger TTL 15 days + Firehose archive | permanent in Postgres (optional partition/archive) | Ledger tables |
DetailType/EventBridge taxonomy | internal normalized transaction_event | orchestrator |
| Legacy flat fee-rule format | unified only | Config tables |
usrv-batch-transaction-report (AWS Batch/Fargate, Python) | Edge Function/worker + pg_cron cycle engine | Settlement reports |
MongoDB usrv-finances-journals (filter type:"OUT") | journals WHERE journal_type='OUT' | Settlement reports |
mv_payment_transactions (legacy RR view, OLD query) | — (greenfield; use ROLLING_RESERVE_RELEASE journals) | Settlement reports |
SETTLEMENT_LAMBDA_ARN invoke + settlement_json | direct approve/confirm; positive/absolute amounts | Settlement reports |
SSM MERCHANT_CONFIG_SETTLEMENT_BATCH | settlement_merchant_config table | Settlement reports |
SSM TESTING_CONFIG (default/manual/specific) | run-mode parameter (scheduled/manual) | Settlement reports |
MerchantLogCapture (AWS_BATCH_JOB_ID) | settlement_runs + Storage logs | Settlement reports |
| EventBridge cron (Mon/Thu 08:00 UTC batch) | pg_cron per cadence (T+0/T+1/T+2) | Settlement reports |
usrv-settlement (3 handlers, DynamoDB SOR) | settlements table + orchestration in Supabase | Orchestration |
SettlementTable (PK settlement_id, Retain) | settlements table (never hard-delete) | Orchestration |
calculateForceDecrease (release − finances) | same logic + prod-bug warning preserved | Orchestration |
settlement_type allowlist (isSupportedSettlementType) | batch/t1/t2 validation | Orchestration |
Decimal128 / normalizeDecimalFields / $facet | — (Postgres numeric + LIMIT/OFFSET + count() OVER()) | Orchestration |
changeStatusFinancesHandler (sync Lambda invoke) | direct call into approve/confirm | Orchestration |
BatchGateway.submitJob (AWS Batch) | trigger cycle run (pg_cron/Edge Function) | Settlement reports |
S3Gateway.getSignedUrl (presigned) | Supabase Storage signed URLs | Orchestration |
TonderError / ES### codes | keep code taxonomy | Error codes |
| Tonder Dashboard metric definitions (Notion) | metric catalog, same formulas | Dashboard |
| Full attempt stream (declined/failed/pending/expired) | transactions table | Ingestion |
"every metric deduplicated" / payment_intent_id | dedup by payment_intent_id | Dashboard |
| Cards acceptance vs APM conversion (never blended) | separate denominators (rules #1 vs #2) | Dashboard |
| Tonder drop-in / Hosted Checkout + Lite SDK v2.0 | Vecnet Hosted Checkout; Skyflow elements; checkout_config | Hosted Checkout |
business_business (Tonder merchant collection) | merchants registry | Operator tables |
| acquirer config (scattered: SSM, code) | rails registry (acquirer-as-plugin) | Operator tables |
| Webhook delivery (ad hoc) | webhooks / webhook_deliveries + Webhook Manager | Rails integration |
| operator access / change tracking | operators (RBAC) + audit_log | Operator tables |