Nations 9th SMS/800 Integration
TollFree.Exchange is a telephone for toll free operators in the United States. The Toll-Free Exchange lets you set up bilateral paid peering from one registered SMS/800 Resp Org to another.
We were extremely excited to listen to the idea; based on the challenges it posed and bring idea to life. As one would imagine creating a telephone exchange would be a large software and with multiple components moreover, the system would be far away from naive architectures.
With the implementation we had to keep a few goals in mind:
- Getting domain knowledge telecom world
- To keep the architecture simple and decoupled
- Scale the needed services in the exchange
- External integration with a legacy system
Since this was a technology centric project we came up with innovative ways on the delivery side. We ditched the Agile software development practices and constituted a highly technical team on the project where the software architect played multiple roles in business analysis and project management.
As the team understood the nitty gritties in the telecom space and started development, a few members stayed keenly focused on building the right Service Oriented Architecture(SOA) in order to be highly scalable and highly available. The technology stack was polyglot.
The routing and the switching mechanism needed to be highly available and it had an external dependency on a legacy system from a company called Somoss’ – SMS/800. The challenge is that the data needs to be dealt at the TCP level which comes in as a stream of encrypted binary data mixed with text data.
Although some parts of the exchange needed to be highly scalable we didn’t start thinking scaling from day one. We easily added scalability with JRuby and the actor pattern when we started load testing the application. The modularity of the services helped us refactor with ease to scale only what was required.
We successfully delivered the exchange and its customers are some of the biggest names in the industry like: Incontact, Ringcentral. Even Google ended making itself a Operator(Resporg).