Developing a new breed of messaging gateway

Developing a new breed of messaging gateway

The new messaging gateway has to be active across geo-redundant sites, with fault-tolerant software and high load tolerance, while allowing for in-service software upgrades, frequent changes and a long service life.

Task

The customer requested Erlang Solutions to design and build a messaging gateway to replace an existing system. Keeping the current service available and responsive in case of faults had become inefficient and difficult. The aims of the new system include the following:

  • 99,999% availability – the gateway has to remain available in case of software or hardware faults
  • Flexibility, to allow for frequent changes and in-service software upgrades
  • Load tolerance – sustaining a high message rate, with the possibility to scale the system easily

Implementation

Two senior Erlang Solutions consultants spent a week at the customer's offices in Chicago for requirement analysis and high-level design. At the end of the week, they produced a system and architecture design. The customer prepared a time plan for incremental deliveries, based on inputs from Erlang Solutions.

After the initial investigation phase, two more developers from Erlang Solutions joined the project. Development was mainly done by Erlang Solutions. The customer's team contributed by implementing one of the protocol components of the system. They were also responsible for the setup of a testing machine to integrate different components and to run a demo of the system during development.

Weekly calls and emails ensured frequent updates and progress monitoring. Acceptance and load tests were a joint effort to validate the system's functionality and performance.

Erlang Solutions was an active and careful listener to the customer. When a change in business needs occurred, a new list of requirements was discussed. Erlang Solutions prepared an updated proposal.

Why Erlang

  • No single point of failure. Even if a node is down because of a hardware or software fault, the system will still be available and provide services as usual.
  • Scalability. Additional instances of a node can be deployed if it has to handle more traffic than others. New instances of Erlang nodes can be added at a later time to support increasing load.
  • Flexibility. Each node can be upgraded separately without any disruption to the other services.

Customer benefits

  • The customer will have a robust and flexible system to support their services.
  • The modular solution built will allow the customer to focus on key components to deliver to the market in a short time and to extend the system with more functionality when required.
  • The solution proposed by Erlang Solutions could evolve according to changes in the customer’s business needs. This allows them to become even more competitive in the market.

Customer Data

  • Customer: A leading global enabler of telecoms services
  • Industry: Telecommunications
  • Employees: 66160 (2010)
  • Net Sales: € 12.661 billion (2010)

Technical Data

  • Programming language: Erlang
  • Development environment: OTP
  • Key Protocols: SMPP, MM7, WCTP, SNPP, OpenLS, MLP, TAP, TNPP, SMTP, ParlayX
  • Database: Mnesia, Oracle, Riak
  • Project management: DSDM Atern