This document discusses Messente's scaling of its SMS API to handle international growth in SMS traffic over time. It describes how Messente built its initial SMS sending and delivery report APIs, then scaled them by moving processing to backend services and pipelines, adding more API nodes, implementing database archiving, and ensuring backups to handle increased traffic and data volume. The scaling approach emphasized building a working product first before scaling later as needed.
6. SMS Sending API
• connect to database
• validate account credentials
• validate sender name
• determine country and operator
• calculate the message price
• account crediting
• unique message ID generation
• save all this data to database
7. SMS Sending API
• connect to database
• validate account credentials
• validate sender name
• determine country and operator of the number
• determine the message price
• account crediting
• unique message ID generation
• save all this data to database
12. SMS Sending API - v2
• extremely fast API response
• handle hundreds of req/sec
• return error codes asynchronously
• offloaded processing to backend service
14. Backend Service - v2
• determine the country &
operator
• check the roaming and
portability information from
HLR service
• determine the route
• calculate the price of the
message
• credit account
• check for number in
blacklist
• verify sender name
• auto-convert text if
required
• update statistics
• save message to
database
15. Backend Service - v2
• determine the country &
operator
• check the roaming and
portability information
from HLR service
• determine the route
• calculate the price of the
message
• credit account
• check for number in
blacklist
• verify sender name
• auto-convert text if
required
• update statistics
• save message to
database