Infrastructure
Infrastructure
The messaging platform is composed of several infrastructure components responsible for message processing, state management, rate limiting, and policy enforcement.
Each component has a clearly defined role within the system architecture and is designed to support high-throughput SMS traffic with predictable latency and operational stability.
The infrastructure consists of the following core services:
- Proxy
- Aerospike
- Redis
- Message Control Platform (MCP)
Proxy
The Proxy is the central application responsible for receiving and processing messages.
It exposes two interfaces for client communication:
- HTTP API
- gRPC API
The proxy acts as the main entry point for SMS traffic and performs several processing steps before messages are forwarded to the SMPP infrastructure.
Responsibilities
- Receive incoming message requests via HTTP or gRPC
- Apply rate limiting
- Execute contact policy checks
- Route messages to the appropriate SMPP client
- Perform load balancing between multiple SMPP connections
- Maintain message submission statistics and operational logs
Routing
The proxy supports two routing modes:
-
Direct routing
Messages are sent directly to a specific SMPP client.
-
Load-balanced routing
Messages are distributed across multiple SMPP clients using weighted load balancing, allowing traffic to be spread across several telecom connections.
This design ensures efficient utilization of SMPP links and improved fault tolerance.
Aerospike
Aerospike is used for stateful message lifecycle management.
It stores transactional information related to SMS processing, allowing the system to track message submission and delivery status.
Responsibilities
- Store message transaction records
- Track message submission results
- Store delivery status updates
- Maintain message lifecycle state
Aerospike is used only for operational message state, not for long-term message storage.
Storage Requirements
For optimal performance under high load, Aerospike should be deployed on:
- NVMe storage
- Low-latency disks tuned for high write throughput
This configuration allows Aerospike to handle large volumes of message state updates with minimal latency.
Redis
Redis is used as a distributed Layer-2 rate limiter.
It ensures that message throughput limits are enforced consistently across multiple proxy instances.
Responsibilities
- Maintain distributed rate limit counters
- Enforce per-client throughput limits
- Coordinate rate limiting across proxy nodes
- Protect downstream telecom connections from overload
The Redis-based L2 limiter operates on a per-client basis, ensuring fair traffic distribution while preventing any single client from exceeding allowed messaging rates.
Message Control Platform (MCP)
The Message Control Platform (MCP) is responsible for policy enforcement and message filtering.
It validates messages before they are allowed to be transmitted through the proxy.
Responsibilities
- Contact policy validation
- Blacklist checks
- Registration verification
- Policy rule execution
MCP allows the system to enforce business rules and regulatory restrictions on outgoing SMS traffic before messages reach the telecom infrastructure.
Infrastructure Summary
| Component | Purpose |
|---|---|
| Proxy | Core message processing and routing service |
| Aerospike | Stateful storage for message lifecycle tracking |
| Redis | Distributed L2 rate limiting system |
| MCP | Contact policy enforcement and message filtering |
Together, these components form a scalable messaging infrastructure capable of handling high volumes of SMS traffic while maintaining strict control over routing, rate limits, and policy compliance.