Building vs Buying WebRTC Solutions
Shakespeare once pondered – To be or not to be! You may face the same dilemma while deciding whether you should build a WebRTC solution in-house or you should just buy the solution. You need to make an informed decision while taking into account all the pros and cons of both options.
Real-time communication apps/video streaming apps are in high demand, especially in Covid times. And, the post-Covid world will witness the increased demand in all probability with many organizations deciding to stick to the remote working model. There are plenty of business opportunities for both new and existing businesses to launch WebRTC based applications or services.
As WebRTC technology attracts an increasing degree of interest, many are considering the trade-off around the decision to build or buy. Now coming back to the original question – Should you build your entire WebRTC infrastructure from scratch or try out a service provider?
We can help you make the right decision!
Now, I can simply say get in touch with RTCweb.in (a custom WebRTC service provider) and all your WebRTC issues will be addressed. However, this is not a “pitch” article. We want you to weigh down both the Build or Buy options and then make an informed choice.
First, let’s discuss the application type.
- When the app is for ‘one-to-one communications’
A simple 1:1 video call application can be easily implemented using WebRTC’s native P2P capabilities. You may think that you can do this yourself, but it is a lot more complicated than it appears.
You need a signal to connect two users, therefore will need to procure a signaling server. You’ll also require a TURN cloud server to make way for those tougher connections.
Next up is cloud migration and transformation. WebRTC is the product of the cloud era. Its deployments are cloud-based most of the time. This places more strain on enterprises just starting their migration towards the cloud.
WebRTC is not just a regular web technology. It needs a lot of parts to get to a minimal viable product, and there’s that media quality issue too. Then follows the big questions – Do you plan to host applications on your own, in your data centers, or the cloud? Are you going to have someone else host the server? Which parts of the application will be managed and which will be self-managed?
Depending on your code and server capabilities, your app should work on all the serves all the time. You’ll also be needing Develop tools, post-activity logs, trouble reports, and SDKs.
Once you have all this sorted, you are in the business.
Let’s discuss the second scenario –
- When the app is for multi-party communication
Multi-party communication means lots of talking heads and lots of viewing windows. In 1:1, using WebRTC’s native P2P capabilities was easy. That would not be the case here! Your PC or mobile device needs to manage each connection, and your app code has to do all the work. Typically, this limits a device to handle 3- 4 participants at a time due to constraints of network and device. Besides, if you want your RTC app to be reliable, you’ll want either a Multipoint Control Unit (MCU) or Selective Forwarding Unit (SFU) for video management. (If this sounds like a secret CIA project, I’d choose to go to a WebRTC service provider.)
The SFU is a video router for WebRTC, usually in the cloud. In a 5 user call on an app such as ‘Hangout’, the SFU is receiving 5 inbound video streams meanwhile it is also sending 20 downstream to all the participants. With each person receiving 4, this is a total of 25 streams. If the app is having 100 concurrent, 5 party calls, SFU is routing 2,500 video streams simultaneously. You need a very very potent server to keep up with this.
There aren’t any commercial SFUs you can buy. You may consider Wowza and Red5Pro but they are not there yet. Into the open-source world, you have Jitisi which was acquired by Atlassian. But, the source lives on though. Kurento was another SFU/MCU framework, acquired by Twilio. Janus WebRTC gateway is in the market. Mediasoup is new to the scene. None of these open source SFU’s is a simple git clone npm install sort of project. Setting up an SFU is on par with deploying your mail server. You know if you have a mail server of your own!
Having said that, there are a few compelling reasons why we would advise you to collaborate with a WebRTC solution provider in this instance.
They would take over the entire development process, would provide good documentation and production-ready mobile SDKs for building native iOS and Android apps. Since you are paying, you can expect the service provider to have an infrastructure that works all the time. Add to that, you will always have someone to go to in case your system is not performing as per your expectations. From SFU and MCU to TURN cloud servers, all capabilities are ready to go is exactly what you should expect from your WebRTC platform provider.
We would also like to bring in the cost implications of building a WebRTC solution.
When building a solution yourself, you need to plan a budget, factoring a myriad of up-front costs.
It starts with research which includes market analysis, devising application architecture, and identifying tools and services. Then comes core WebRTC development where you have to pay for writing front-end and back-end code.
Next up is data engineering and functionality, involving data management, data analysis. AI & ML component. In the later stage, you have to get your application tested for its functionality, integrations, and performance.
Lastly, there is deployment and documentation. You have to spend on creating the documentation to maintain, support, and extend the application in the future, and placing the application for production
Furthermore, you also need to factor in several recurring operating expenses, like:
- Monthly/Yearly cloud computing costs for a compute service like AWS EC2
- Monthly/Yearly cloud data warehousing costs
- Software maintenance – application bug fixes; performance, scalability, and improvements; new features and functionality.
- Software support to the operations team using the application in production
All in all, building a WebRTC app has a steep learning curve and needs a lot of time and money.
The core components of WebRTC technology are free, but the operations and application cost heavy. With WebRTC platform providers offering all features and functionality you could need, you don’t have o do it all yourself. Cost optimization goes for a toss when you take the whole thing in your hand.
With a reliable service provider, getting started with WebRTC is easier and cheaper. The right choice greatly affects your project’s long-term adaptability, scalability, and cost. A careful choice of service providers can prevent expensive refactoring and/or re-architecting as your WebRTC project grows.