Architecture Reference
OLIVE is a three-tier payment processing system designed for high security, scalability, and AI-powered decision making.System Components
Gateway
Go + GinPublic REST API, authentication, rate limiting
Wallet-Core
Go + gRPCFinancial engine, ledger, ACID transactions
Agent-TS
TypeScript + OpenAIConversational AI, WhatsApp integration
High-Level Architecture
Communication Protocols
External to Gateway
Internal Communication
Data Flow Patterns
Payment Request Flow
1
Request Received
Client sends payment request to Gateway (HTTPS + Auth)
2
Authentication
Gateway validates API key, JWT, or HMAC signature
3
Rate Limiting
Request checked against rate limits
4
Forward to Core
Gateway calls Wallet-Core via gRPC
5
Transaction Execution
Wallet-Core executes atomic DB transaction
6
Audit Logging
Transaction logged to audit table
7
Response
Success/failure returned through the chain
Agent Conversation Flow
Database Schema
Core Tables
Schema Details
Accounts Table
Accounts Table
Transactions Table
Transactions Table
Audit Log Table
Audit Log Table
Idempotency
All payment operations are idempotent usingrequest_id:
- Client generates unique UUID for
request_id - Wallet-Core checks for existing transaction with that ID
- If found, returns cached result (no duplicate execution)
- If not found, executes transaction
- Result cached for idempotency window (24 hours default)
Error Handling
Gateway Errors
- Input validation with detailed error messages
- Standard HTTP status codes
- Sanitized error responses (no internal details)
- All errors logged with request context
Wallet-Core Errors
- Automatic transaction rollback on any failure
- gRPC error codes with structured details
- Database consistency guaranteed
Agent Errors
- Graceful degradation to safe defaults
- Timeout protection for OpenAI calls
- Policy violations logged but non-fatal
Scalability
Horizontal Scaling
- Gateway: Unlimited instances behind load balancer
- Agent-TS: Stateless, unlimited scaling
- Wallet-Core: Limited by database connections
Vertical Scaling
- Increase memory for caching
- Database optimization with indexes
- Connection pooling tuning
Database Scaling Options
- Read replicas for balance queries and reporting
- Connection pooling with PgBouncer
- Partitioning by date for transaction history
- Sharding by user_id for write distribution
Failure Modes
Related
Gateway Architecture
Detailed Gateway internals
Wallet-Core Ledger
Transaction processing details
Security Reference
Security configuration
Deployment Guide
Production deployment