How piyush2676/recoverx works
RecoverX is a failed-payment recovery agent: it classifies gateway errors, applies deterministic safety and timing gates, executes eligible recovery actions, and audits outcomes. Its principal workflow is documented in the README; sampled source confirms validation and caching for the model classifier, policy gates, Razorpay idempotency, ledger persistence, and dashboard ledger reads. Batch generation and evaluation are major product capabilities too. Some runner wiring is unsampled, so uncertain call links are omitted.
Main entry points: ExecutionRunner.java Execution runner · RecoverXApplication.java Application entry · LlmClassifier.java LLM classifier · DefaultRecoveryPolicy.java Recovery policy
Components 21
Batch data
- Synthetic generator
src/main/java/com/recoverx/datagen/SyntheticDataGenerator.java - Transaction model
src/main/java/com/recoverx/domain/FailedTransaction.java
Recovery workflow
- Application entry
src/main/java/com/recoverx/RecoverXApplication.java - Recovery cycle
src/main/java/com/recoverx/eval/RecoveryCycle.java - Execution runner
src/main/java/com/recoverx/eval/ExecutionRunner.java - Recovery policy
src/main/java/com/recoverx/policy/DefaultRecoveryPolicy.java - Recovery decision
src/main/java/com/recoverx/policy/RecoveryDecision.java - Recovery executor
src/main/java/com/recoverx/executor/RecoveryExecutor.java - Razorpay adapter
src/main/java/com/recoverx/executor/RazorpayExecutor.java
Audit and reporting
- Append-only ledger
src/main/java/com/recoverx/ledger/JsonlLedger.java - Evaluation harness
src/main/java/com/recoverx/eval/ComparisonRunner.java - Classification scorer
src/main/java/com/recoverx/eval/ClassificationScorer.java - Dashboard API
src/main/java/com/recoverx/dashboard/DashboardController.java
Classification
- Classifier interface
src/main/java/com/recoverx/classify/FailureClassifier.java - Rule classifier
src/main/java/com/recoverx/classify/RuleBasedClassifier.java - LLM classifier
src/main/java/com/recoverx/classify/LlmClassifier.java - Gemini provider
src/main/java/com/recoverx/classify/GeminiClassifier.java - Response validator
src/main/java/com/recoverx/classify/ResponseParser.java - Classification cache
src/main/java/com/recoverx/classify/ClassificationCache.java
Other components
- Batch operator
- Razorpay API
Connections 21
- Batch operator → Application entry: starts mode
- Application entry → Synthetic generator: runs generation
- Synthetic generator → Transaction model: creates records
- Application entry → Execution runner: runs batch
- Application entry → Evaluation harness: runs comparison
- Execution runner → Classifier interface: classifies transactions
- Execution runner → Recovery policy: requests decisions
- Execution runner → Recovery executor: executes decisions
- Execution runner → Append-only ledger: reads and records
- Classifier interface → Rule classifier: rule implementation
- Classifier interface → LLM classifier: model implementation
- LLM classifier → Gemini provider: optional model calls
- LLM classifier → Response validator: validates response
- LLM classifier → Classification cache: reads and writes
- Recovery policy → Append-only ledger: checks pending attempts
- Recovery policy → Recovery decision: produces decision
- Recovery executor → Razorpay adapter: dispatches action
- Razorpay adapter → Razorpay API: sends payment request
- Evaluation harness → Classification scorer: scores classifications
- Evaluation harness → Recovery cycle: runs recovery arms
- Dashboard API → Append-only ledger: reads ledger file