Skip to main content

Design and Architecture

The Stellar Disbursement Platform consists of four services deployed together:

  • Dashboard: the user interface administrators use to initiate and track the progress of disbursements
  • SDP Core Service: the core backend service that performs several functions:
    • Dashboard API: the API used by the front-end UI for all disbursement requests. The API is documented here
    • Messaging Service: a recurring process that sends text messages to users prompting them to download the wallet selected for a particular disbursement and verify their phone with an OTP
    • Wallet Registration UI: a web application that collects and verifies the recipient’s OTP code and verification information via Stellar’s SEP-24: Hosted Deposit and Withdrawal protocol
  • Anchor Platform Service: the API server that the wallet uses to authenticate and initiate the recipient’s registration process through the SEP-24 deposit flow
  • Transaction Submission Service: the service that submits all payment transactions to the Stellar network. This service is designed to maximize payment throughput, handle queuing, and graceful resubmission/error handling

Dependencies

  • Container Orchestration: the SDP is packaged as Docker containers and can be deployed to Kubernetes or AWS Fargate. SDF provides a Helm Chart for Kubernetes
  • Postgres: the SDP uses a Postgres database server for all of its services
  • Twilio or AWS SNS and SES: the SDP’s messaging service uses SMS messages via Twilio or AWS SNS and administrative emails for organization account setup and recovery via AWS SES
  • Stellar Accounts:
    • Distribution Account: the SDP requires access to a funded Stellar account to make payments to the recipient
    • SEP-10 Auth Account: the SDP requires a Stellar account for the mutual authentication protocol SEP-10: Stellar Web Authentication used to connect to wallet applications

Architecture Diagram

Architecture Diagram