In a previous post and video from our CEO, Arin Sime, he made a useful analysis about the different approaches that exist for building WebRTC applications: relying directly on the base APIs, leveraging a media server, or using a CPaaS. Today, it’s time to give the latter of these alternatives its own spin-off post and take a deeper look at what a CPaaS is and whether it is a good option for your WebRTC application.

CPaaS: Abstraction of Complexity

CPaaS stands for “Communication Platform as a Service”. Let’s split this definition into two parts:

  1. “Communication Platform” refers to the infrastructure and set of services required to enable communication features in an application.
  2. “As a Service” means that someone else is taking care of all the complexity that comes from building such a platform, and abstracts it to make it available for anyone to use it.

Let’s take a moment to explain the “as a service” concept. Imagine you want to wash your car with professional results. You can do this at home, provided that you have the time, the expertise, and the required equipment. In this analogy, this is the “complexity”.

Or, you can take it to the nearest car wash facility, owned by someone who already has such equipment and is happy to do it for you. As washing cars is their daily job, they have developed their own techniques to make things more efficient. This is the “abstraction”.

We can even create a fancy acronym for it: the “Clean Car as a Service” or CCaaS has been born!

Getting back to Communication Platform as a Service, we can say that it refers to an approach where the complexity that comes from running the required infrastructure for communication features has been abstracted by a third party in order to be offered as a service that you can use in an easy and convenient way.

Super-CPaaS to the Rescue!

Just as washing cars requires equipment and some sort of expertise, communication using WebRTC requires running a set of servers that take care of various crucial tasks for a connection to take place successfully. 

These tasks include routing and mixing media streams, identifying ICE candidates, and relaying media traffic when a direct connection between participants is not possible.

Normally, it would be your responsibility to not only provision and maintain such servers but also to make sure they scale as demand from your users grows. Without the proper expertise this can be difficult and time consuming, not to mention that it can directly affect the success of your application.

A CPaaS approach eliminates all this burden by transferring it to a third party: a CPaaS provider. In addition to performing the aforementioned tasks, they also take care of making all the functionality available in the shape of APIs and SDKs that you can use to build your applications. You don’t have to worry one bit about what is happening behind the scenes.

Of course, this comes with a price, usually based on usage. This is why a CPaaS is a popular choice for start-ups.

A CPaaS will handle:

  • All WebRTC supports / updates
  • Media Servers
  • STUN/TURN
  • Browser/Mobile support
  • Additional features around the video like recording, broadcasting, or transcription
  • Additional APIs that you can tap into if you need SMS texting, two factor identification, or Voice/VOIP telephony integration. This is great for when you need an omni channel application which uses multiple communication methods.  

Which CPaaS is right for you?

In order to adopt a CPaaS approach, you need to pick a CPaaS provider. Multiple providers exist that provide multiple kinds of services. Knowing which one is the best for you will depend on your specific needs. (We can help you with this choice!)

Some of the things you might consider when selecting a CPaaS provider are:

  1. What communication-related capabilities does your application require?
  2. Where is your application hosted?
  3. How easy will it be to integrate it with your software stack?

To make things a little easier, here’s a table with some of the most popular CPaaS providers out there, some of the communication features they offer, and a link to their pricing page. All of these providers offer JavaScript and mobile APIs, as well as different capabilities for features like live streaming / broadcasting, group video chat, recording, and a host of other features that can be considered pretty standard at this point.

Please don’t consider the list of available features below to be anywhere near complete! You’ll likely want to explore each in further detail for the specific features you may be interested in.

CPaaS ProviderAvailable FeaturesPricing
VonageSMS, Voice & Video, Messaging, Virtual Phones, Telephony, Conversational AI Based on usage
AWS Chime SDKSMS, Voice & Video, Messaging, Integration with other AWS services for AI/ML Based on usage
DailyVoice & Video, Prebuilt optionsBased on usage
AgoraVoice & Video, MessagingBased on usage
TwilioSMS, Voice & Video, Messaging, Telephony, Transactional Emails, SIP TrunkingBased on usage
LiveSwitchVoice & Video, Messaging, On-Premise optionsPlan based

Is CPaaS the right choice for my specific application in the first place?

At the end of the day, it all depends on the available resources you have and your specific needs and goals. 

If time-to-market is important and/or you don’t have the technical expertise to run your own infrastructure, then CPaaS is the way to go.

On the other hand, if you want to have more control and minimize ongoing costs – and also have the right staff – then relying on an open source solution might be a better choice.

The good news is that here at WebRTC.ventures we have partnerships with some of the biggest CPaaS providers. We can help you not only pick the right approach, but also implement it successfully in your application. We also have plenty of experience setting up building custom WebRTC apps and managing infrastructure if you have outgrown a CPaaS. Let us know how we can help!

Recent Blog Posts