This website uses cookies.

Cookies are small text files held on your computer. They allow us to create the best browsing experience for you on our site. By using this website or closing this message, you are agreeing to our Cookies policy.

inqicon

START A CONVERSATION

Share your requirements and we'll get back to you with how we can help.

Thank you for submitting your request.
We will get back to you shortly.

Designing Concurrent Applications Using Erlang

Aiming for massive concurrency and almost zero downtime?

If what you have in mind is a nonstop application with scalability and concurrency built into it, consider building it on Erlang. Developed at Ericsson and now open sourced, Erlang is a functional programming language well suited for building highly scalable and fault-tolerant soft real-time systems.

When Low Latency Matters

Erlang is ideal for soft real-time systems that require low latency. A major advantage lies in the way the Erlang Virtual Machine (BEAM) handles garbage collection. Processes in BEAM are lightweight, and the preemptive Erlang scheduler allocates a fair share of time to each process (request, user, client) without causing starvation. Unlike in a Java or .NET machine, garbage collection pauses in Erlang VM are not noticeable and do not halt the system.

Large-Scale Internet-Based Systems

Erlang is an excellent choice for implementing a number of the classical Internet protocols. The inherent distribution based on TCP/IP makes it relatively easy to scale from one computer to a cluster of many. A variety of applications, including network-intensive ones, can therefore be built using Erlang.

Instant Messaging Apps

Inherent support for concurrency allows Erlang servers to handle millions of parallel connections without any interference or performance degradation. Erlang also makes it possible to upgrade systems without stopping them. Any update can be done in zero-downtime mode, which is crucial for real-time chatting services.

Where Erlang Best Fits

  • Interactive voice response systems
  • Electronic payment systems
  • Online betting and gambling
  • Ad serving platforms
  • VoIP and video conferencing
  • Enterprise messaging
  • IMs and mobile chat applications
  • Real-time monitoring applications
  • Telecommunication systems
  • Web applications with dynamic content

Riding on Erlang

Fault-Tolerant NoSQL Data Store

Riak is a database written in Erlang and designed to operate in highly distributed environments. Typically, it finds use in cloud storage platforms. Gaming, network monitoring, CDN, and other read-write intensive enterprise applications are common use cases for Riak deployment.

Think Erlang, if your system needs to

  • Handle a large number of concurrent activities.
  • Distribute work over a network of computers.
  • Scale with the number of machines on the network.
  • Upgrade or reconfigure without downtime.

Featured App

Chat app with a twist

Chat app with a twist

WhatsApp-like but with lot more features! This IM application was developed for both iOS and Android platforms. XMPP is the messaging protocol and Riak, the database.

The app uses a custom Erlang server with modules for message exchange, phone number based registration, multi-user chat (searchable with tags and topics), offline message storing, and sharing of images, videos, or audio files. Communication is based on customized XMPP with encryption for low mobile data usage and high message deliverability, among other improvements.

    Can Erlang solve your concurrency challenge?

  • Let’s Discuss