Skip to main content
Documentation

System overview

OpenDDE follows a hub-and-spoke architecture. The FastAPI backend acts as the hub, orchestrating requests between the frontend, three computational microservices, a cache layer, and external APIs.

Request lifecycle

Every user action follows this path:

  1. Frontend (Next.js) makes an API call to the backend
  2. Backend checks the in-memory cache (1h TTL, 200 max entries)
  3. On cache miss, the backend routes to the appropriate service:
    • P2Rank for pocket prediction
    • RDKit for molecular properties
    • ImmuneBuilder for antibody structures
    • External APIs (ChEMBL, UniProt, AlphaFold DB) for data
  4. Backend stores results in Supabase (PostgreSQL) for persistence
  5. Backend caches the response and returns it to the frontend

Internal communication

All inter-service communication uses HTTP/REST over the Docker Compose internal network. Services reference each other by container name (e.g., http://p2rank:5001).

External dependencies

ServiceUsed forRequired?
SupabasePersistent storageYes
UniProt APIProtein data & sequencesYes
AlphaFold DBPredicted structuresYes
ChEMBL APILigand bioactivity dataYes
Anthropic APIAI assistantOptional
Open TargetsSafety profilesOptional

Next: Engine swap layer →