Skip to main content

Backend Architecture

ConnieRTC's backend is built on Twilio Serverless Functions for scalable, secure API operations.

Technology Stack

  • Twilio Serverless - Serverless function platform
  • Node.js - JavaScript runtime
  • Twilio API - Communication platform APIs
  • Database Connectors - Multi-database support

Directory Structure

serverless-functions/
├── src/
│ ├── functions/
│ │ ├── common/ # Shared utilities
│ │ └── features/ # Feature-specific functions
│ ├── assets/ # Static files
│ └── utils/ # Helper functions
├── .env # Environment variables
└── package.json

Feature Functions Pattern

Each feature's serverless functions follow:

features/
└── [feature-name]/
├── studio/ # Studio Flow webhooks
├── flex/ # Flex API endpoints
└── common/ # Shared feature functions

Development

Running Locally

cd serverless-functions
npm install
npm start

Environment Configuration

Required environment variables in .env:

ACCOUNT_SID=AC...
AUTH_TOKEN=...
TWILIO_FLEX_WORKSPACE_SID=WS...

Function Types

Protected Functions

Require Twilio signature validation:

// filename.protected.js
exports.handler = async function(context, event, callback) {
// Only accessible via Twilio webhooks
};

Public Functions

Accessible without authentication:

// filename.js
exports.handler = async function(context, event, callback) {
// Accessible to any client
};

Deployment

# Deploy to Twilio
npm run deploy

# Deploy specific environment
./deploy.sh [account-name]

For debugging and troubleshooting, see the Debugging Best Practices guide.