Skip to main content

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


Idempotency

All payment operations are idempotent using request_id:
  1. Client generates unique UUID for request_id
  2. Wallet-Core checks for existing transaction with that ID
  3. If found, returns cached result (no duplicate execution)
  4. If not found, executes transaction
  5. Result cached for idempotency window (24 hours default)
Always generate unique request_id values. Duplicate IDs will return the original transaction instead of creating a new one.

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


Gateway Architecture

Detailed Gateway internals

Wallet-Core Ledger

Transaction processing details

Security Reference

Security configuration

Deployment Guide

Production deployment