Skip to content

bot4pk/decision-engine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

376 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust License Docker Release Slack



⚡ Decision Engine

The Brain Behind Smarter Payments

Open-Source • High-Performance • Success Rate Based

Route payments intelligently. Maximize success rates. Zero vendor lock-in.


🚀 Quick Start📚 Documentation🏗 Architecture🤝 Contributing


🎯 What is Decision Engine?

Decision Engine is a high-performance payment gateway router built in Rust that intelligently selects the optimal payment gateway for each transaction — in real-time.

┌─────────────┐     ┌──────────────────┐     ┌─────────────┐
│  Payment    │────▶│  Decision Engine │────▶│  Best       │
│  Request    │     │  (Fast routing)  │     │  Gateway    │
└─────────────┘     └──────────────────┘     └─────────────┘

Why Teams Choose Decision Engine

💥 The Problem ✅ Our Solution
Payment failures from gateway downtime Real-time health monitoring with automatic failover
Suboptimal routing = lost revenue SR-based routing based on success rates & latency
Vendor lock-in limits flexibility Modular design — works with any orchestrator
Complex rule management Flexible policies — rule-based + SR-based hybrid

✨ Features

🧠 Intelligent Routing

Feature What It Does
Eligibility Check Filters out ineligible gateways before routing
Rule-Based Ordering Apply merchant-specific priority rules
Dynamic Ordering Success rate based gateway optimization
Downtime Detection Auto-pause failing gateways

🛠 Built for Production

Capability Details
⚡ Blazing Fast Fast routing decisions
🔐 Memory Safe Built in Rust — no data races
📊 Multi-DB MySQL & PostgreSQL support
🐳 Docker Ready One-command deployment
☸️ K8s Native Helm charts included

📊 Performance at a Glance

Metric Value
Routing Decision Time Low latency
Memory Footprint ~50MB
Concurrent Requests 100K+
Uptime SLA Support 99.99%

🏃 Quick Start

🐳 Docker (Recommended)

# Clone and run
git clone https://github.com/juspay/decision-engine.git
cd decision-engine
docker compose --profile postgres-ghcr up -d

# That's it! API ready at http://localhost:8080

🦀 From Source

# Prerequisites: Rust 1.85+, MySQL/PostgreSQL, Redis

git clone https://github.com/juspay/decision-engine.git
cd decision-engine
cargo build --release

# Configure
cp config.example.toml config/development.toml
# Edit config with your settings

# Run migrations & start
diesel migration run
./target/release/open_router

✅ Verify

curl http://localhost:8080/health
# → {"message":"Health is good"}

📖 Documentation

📘 Resource Description
Local Setup Guide Canonical guide for CLI, Docker, Compose profiles, and Helm
MySQL Setup Guide MySQL-specific walkthrough
PostgreSQL Setup Guide PostgreSQL-specific walkthrough
API Reference Complete REST API documentation
Configuration Guide All config options explained
Deep Dive Blog How routing logic works

🏗 Architecture

High-Level Flow

Decision Engine Architecture

Integration Pattern

Decision Engine integrates seamlessly into your existing payment stack:

Integration Pattern

Integration Steps:

Step Direction Component Action
1 Your App Initiates payment request
2 Orchestrator Forwards to Decision Engine
3 Decision Engine Selects optimal gateway
4 Vault Returns card token (PCI-safe)
5 Gateway Processes payment
6 Gateway Returns result
7 Orchestrator Routes response back
8 Your App Receives final result

Key Benefits:

  • Zero PCI scope — Vault handles all card data
  • Drop-in integration — Works with any orchestrator
  • Intelligent fallback — Auto-switches on gateway failure

🗺 Roadmap

Status Feature Description
Rule-based routing Merchant-defined priority rules
Dynamic ordering SR-based gateway selection
Downtime detection Automatic health monitoring
Multi-database MySQL & PostgreSQL support
🔄 Enhanced routing models Better success rate prediction
🔄 Admin dashboard Visual rule management UI
📋 Multi-tenant analytics Per-tenant routing insights
📋 GraphQL API Alternative query interface

🤝 Contributing

We ❤️ contributions!

# 1. Fork & clone
git clone https://github.com/YOUR_USERNAME/decision-engine.git

# 2. Create branch
git checkout -b feature/your-feature

# 3. Make changes & test
cargo test

# 4. Submit PR!

👉 See CONTRIBUTING.md for guidelines.

🌱 New to open source? Check out good first issues!


💬 Community

Platform What It's For
Slack Real-time help, discussions
GitHub Discussions Ideas, feature requests
GitHub Issues Bug reports

📜 License

Licensed under GNU AGPL v3.0.


Built with ❤️ by Juspay

Reliable, open-source payments infrastructure for the world.

⬆ Back to Top

About

open-source routing system designed for payment processing

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 85.6%
  • TypeScript 8.8%
  • JavaScript 1.8%
  • Shell 1.7%
  • Groovy 0.8%
  • Go Template 0.3%
  • Other 1.0%