Blog

Julia Poltavets

Why QuickBlox choose XMPP protocol

Posted by Julia Poltavets on October 11, 2019

Any communication solution provider needs a communication protocol. There is a bunch of them at the market and one needs to give a good thought before they understand the way they work and opt for the one most relevant in their particular case. We at QuickBlox chose XMPP protocol once and the time has come to spread a word about it.

What is XMPP (jabber)?

XMPP is quite an old technology. Launched under the name Jabber, it was an open-source project for developing a protocol capable of supporting instant messaging solutions. Jabber also became the name of an instant messaging service based on XMPP.

What is the XMPP protocol? If we decipher the abbreviation, we will get extensible messaging and presence protocol, and this is exactly what XMPP is. It is a protocol for a messaging service based on extensible data exchange that can show the user’s “presence” – their ability to send and receive messages.

During two decades of its existence, it has got a reputation of a reliable solution and even earned the trust of such industry leaders like Google and Facebook that used XMPP in their messaging services – Google Talk and Facebook Messenger.

At QuickBlox, we opted for XMPP as it has always been chat-oriented, and chats and instant messaging are the primary focus of our service. XMPP is perfectly suited for real-time messaging including all types of instant communication – private, public or group messaging, video and audio communication, data exchange. Let’s look at XMPP strong suits to see why it became our protocol of choice and you may consider it your choice in 2019.

Why use XMPP in 2019?

Open Standard

XMPP uses an open standard published by IETF. Any provider that complies with this standard can implement an instant messaging solution using XMPP. Therefore, XMPP supports a free choice of the IM vendor.

Decentralized architecture

There is no central server that supports communication via XMPP. All communication is processed via servers with no direct connections between clients, but anyone can launch and maintain their own XMPP server. This ensures server independence, increases security, and provides additional customization opportunities.

Operating system and device independency

XMPP is not limiting you in the choice of operating systems or devices on which you run your IM solutions.

Great support

Compared to other communication protocols, XMPP wins points in the support category. As one of the oldest protocols, it has one of the most effective support services that, thanks to the contributions by Google and other companies, has evolved into an efficient and reliable function.

Disadvantages of XMPP

As everything, XMPP has its weaknesses of which we are aware of. For the time being, however, we believe that its advantages outweigh its drawbacks, and XMPP remains a working component of our communication solutions.

High overhead

XMPP transmits lots of redundant data. Sometimes, as much as 60% of data is repeated creating huge amounts of unnecessary traffic.

Mandatory XML format for IM

In XMPP, messaging is done in an XML document with no option to send unmodified binary data. This restriction makes it impossible to send files without using additional communication protocols.

What XMPP features does QuickBlox implement?

Add communication through XMPP

In our communication solutions, we implement a set of the most important features that are necessary for a chat application:

RFC-6120

This document defines the basic specifications and standards describing, among others, the security and encryption mechanisms used in XMPP-based instant messaging applications. Particularly, RFC-6120 refers to the TLS 1.2 security protocol that QuickBlox uses in its solutions.

RFC-6121

RFC-6121 is another standard that governs the management of rosters (contact lists of the user) and presence information (the user’s status in the context of their ability to participate in the conversation).

XEP-0045

XEP-0045 is an XMPP extension for a highly customizable multi-user chat. With XEP-0045, you can enable conversations in chat rooms as well as exercise user management functions. However, XEP-0045 does not support establishing a system of user roles and privileges or changing a role or privilege for a particular user.

XEP-0280

XEP-0280 is used to send carbon copies of instant messages to different resources to maintain the uninterrupted conversation flow. This extension allows users to continue conversations from different devices with no messages lost.

XEP-0016

The XEP-0016 extension provides the ability to block communication with a particular user based on personal preferences. With XEP-0016, you can block users both in private chats and in group conversations.

XEP-0198

XEP-0198 is an XMPP extension that supports the management of data streams. The functionality of XEP-0198 allows resuming the stream after an interruption.

XEP-0333

With XEP-0333, you get the ability to set chat message markers, such as “delivered”, “received” or “acknowledged”. This way, users get visual confirmation that their messages have reached their recipients.

XEP-0012

XEP-0012 allows providing information about the user’s last activity or presence in the chat. In QuickBlox solutions, the presence data is shown in seconds.

XEP-0352

This extension enables displaying the user’s status. With XEP-0352 implemented, the chat shows whether the particular user is online or not.

What XMPP features can be implemented upon request?

XEP-0060

The XEP-0060 extension allows implementing the publish-subscribe service. In our case, we may develop the service with Telegram channels.

XEP-0191

XEP-0191 is a blocking command extension. It is used to block communications and can be implemented faster and easier than XEP-0016.

Within the functionality of XEP-0191, the following features are also available:

  • Edit message
  • Delete message
  • Self-destructing messages

XEP-0033

XEP-0033 enables sending messages to multiple recipients simultaneously. On the other hand, it allows sending user presence information to multiple servers at the same time.

Gateways

We can build integrations with the gateways between the XMPP network and legacy messaging services. Particularly, we can create integrations with proxy gateways that act as an XMPP client on a non-XMPP instant messaging service.

Integration with email and message queue

QuickBlox could provide you an option to integrate your email with the XMPP network. This will allow you to receive the messages that were left unread for a while. The messages will be sent to the chat through the Simple Mail Transfer Protocol that is SMTP.

QuickBlox can also ensure you with the message queue integration. A message queue is an integration pattern for the information exchange while being connectionless. The messages you receive will be redirected to your MQ service for further analysis. You’ll also have a dynamic configuration for several message queues.

Conclusion

XMPP is a reliable communication protocol used by numerous companies including Google and Facebook. It’s specifically made for instant messaging and, thus, eventually became our choice.

QuickBlox is ready to provide you with the standard chat features but can also add customizable ones upon request.
If you are interested in setting up a multi-functional chat application or need more details about the available QuickBlox SDKs, contact us, and we will be glad to help.

Julia Poltavets

Flutter vs React Native: What to choose?

Posted by Julia Poltavets on October 7, 2019

Cross-platform development has been a trend in mobile development in recent years. The desire to reduce the time and money spent on developing mobile applications on two platforms at once has provoked the active development of technology to achieve this goal. Some tools, though, are so similar to each other that it might sometimes be very difficult to make a choice. The difference, as always, lies in details.

Today we’re looking at Flutter and React Native, what their purposes are, why using them for this or that project so that you’d be able to choose the best app development solution.

As we’ve already covered in one of our articles, Flutter is a cross-platform open-source mobile application development framework. The idea is simple: take something new with a development perspective and resolve issues in cross-platform app development. Flutter is based on Dart – a fast, object-oriented programming language.

Flutter offers a widget approach. It provides a modern, reactive framework, and an extensive set of platform, layout and foundation widgets. Widgets allow developing user interfaces of any complexity that are no different from native UIs.

What’s Flutter for?

The key benefit of using Flutter as a cross-platform mobile app development solution is the ability to use a single programming language to develop apps for both iOS and Android. Indeed, Flutter includes everything required to develop cross-platform applications, such as ready-made widgets, testing and integration APIs, rendering engine, and command-line tools. It supports cross-platform application development using a single codebase. That’s why it allows developers to significantly save time and resources on the development of both platforms.

Who created Flutter?

Flutter is started by Google and has been heavily promoted since I/O 2017. The first version of Flutter was known as “Sky” and ran on the Android operating system. It was presented at the Dart Developer Summit in 2015. A stable launch of Flutter, however, took place on 4th December 2018. At Google I/O 2019, Google assured that Flutter is expected to be used both for web and desktop app development.

How mature is Flutter?

Like all new tools, it may experience issues of relatively fresh technology. And though it has a significant Google support and offers great functionalities ready to be implemented, it’s still new, and its libraries are limited. Some developers claim that it could not be used for building a complex commercial app yet and it’s better suited for simpler apps and prototyping.

But Google keeps making Flutter stronger and more resilient, giving priority to enhanced stability, performance, and quality. Thus, we can expect it to strengthen its positions eventually.

What popular apps are made with Flutter

Among Flutter acolytes, there is a legendary London-based Abbey Road Studios with Topline for recording songwriters as well as two Chinese giants: Alibaba with their Xian Yu app, and Tencent with the NOW Live app for video streaming. There are also many other Flutter apps that can attract our attention including Reflectly, Hamilton Musical, Cryptograph, Birch Finance, Toughest, InKino and the like.

What is React Native?

React Native is a mobile infrastructure that compiles with native application components, allowing you to create your own mobile applications for various platforms. There is also an option to target web and windows platforms but it requires additional configuration and setup. The applications developed in React Native are somewhere in the middle between native and hybrid. More information on React Native you can find in our article What is React Native and How it works.

What is React Native for?

React Native is ideal for building natively rendering mobile applications for iOS and Android. As we’ve already mentioned, the development process will not take much time and effort. Whatever you need, an application for doctor-patient communication, banks or other financial institutions, marketplaces or anything else – React Natives turns out to be a great development tool for these purposes.

Who created React Native?

Created by a Facebook software engineer Jordan Walky, React Native appeared as a parallel project of work on React.js. In 2015, React Native became an open-source project. Initially, only iOS support was provided, Android support was added in September 2015. Currently, it uses JavaScript and React.js and allows you to create applications for both Android and iOS.

How mature is React Native?

React Native has been around for 4 years and has already gathered a big community. It’s still comparatively young if you take other mobile development platforms. Nevertheless, with what we have now, the chances to get the answer in case you’re stuck somewhere increases. Besides, having a community means that you’re always surrounded by like-minded pros. And it allows you to share your experience and get feedback whenever you need it.

What popular apps are made with React Native

Bearing in mind all the advantages and disadvantages, not surprising that many companies give preference to React Native for their mobile app development. Thus, React Native was used in the development of Facebook Ads, Instagram, Pinterest, Skype, Airbnb, Yeti Smart Home, Uber Eats, and many more. The projects speak for themselves.

Installation

The installation process has to be simple without too many complicated stages. Thus, even beginners can easily master it. Still, React Native is a little easier to set up if you already have Node.js and NPM installed, while Flutter installation seems to require extra steps.

React Native — NPM

React Native can be installed using the Node Package Manager (NPM) with a simple command. Of course, this requires a Node.js and NMP to be installed. In addition to the framework, you will need such tools as the Android SDK and JDK.

Flutter — Binary Download from Source

To install Flutter, you need to download it from the source code to the desired directory and unzip it. Then you need to manually add the binary to the PATH variable, which is already more time consuming than a single-line command. Just as with React Native, additional components are required. If you have been developing Android mobile applications before then Android Studio has a module that easily installs everything you need to start creating with Flutter.

UI Component and Development API

Your app’s user interface is everything that the user can see and interact with. It is very important to have a variety of pre-built UI components such as structured layout objects and UI controls that allow you to build the graphical user interface for your app. So we need the support for the native component to ensure the app feels like “native”. It is essential that the framework has an API to easily access the native modules.

React Native — Less Components

React Native has a more extensive UI library than Flutter. It is based on native components. Still, React Native relies on many third-party libraries, which in some cases can be a problem as they may contain bugs or incompatibilities of the UI with a specific platform. Nevertheless, UI components can be linked to the project quickly enough.

Flutter — Rich in Components

Flutter runs perfectly with the proprietary widget sets. They are the best option to get a customized UI design that ensures engagement and native support. The number and variety of widgets are increased due to the lightweight and simplicity of the widgets.

Flutter uses only the canvas of the native platform and draws the UI and all the components from scratch. All the UI elements look the same as native ones. As a result, the UI performance is remarkably high.

Developer Productivity

There are not so many tests to check the developer productivity of applications created on both frameworks, but theoretically, Flutter could outperform React Native in it.

React Native

React Native uses the Javascript bridge to interpret the UI components for rendering and then calls Objective-C or Java API to display the corresponding iOS or Android component. This bridge is an extra layer of abstraction that may cause a more extended and laborious development process.

Flutter

Flutter takes a completely different approach to rendering. Let’s start with the fact that Flutter does not use native components of other platforms. Instead, Flutter works directly with canvas and events, it creates its widgets and uses the GPU to render them on the screen. Flutter compiles all Dart code into native ARM code which is processed directly by the processor. This allows the applications to run faster. Both Flutter and Dart adopt regulated documentation that allows improving the productivity of developers.

Flutter vs. React Native: Conclusion

Choosing between React Native and Flutter for building cross-platform native mobile apps may depend on many aspects. If we look from a UI perspective, the difference is not visible for common app users.

For developers or companies, the choice of the platform depends on various factors from the previous tool stack to budget questions. In general, if a company already has a team of developers, it won’t be difficult to transfer people to React Native. Especially taking into account that React Native has a strong and mature community along with native app performance and use of popular JavaScript in developing cross-platform apps.

At the same time, Flutter has strong support from Google and the number of developers interested in the framework is only growing. Thus, in the near future, you can expect Flutter to flourish.

From our side, QuickBlox is getting ready with React Native SDK which is now in beta testing. But React Native SDK will be available really soon! Thus, stay tuned, otherwise, you can miss our great release!

Julia Poltavets

What is React Native and how does it work?

Posted by Julia Poltavets on September 20, 2019

If you are building an app, you are definitely building a mobile version. Whether you choose the mobile-first approach or decide to build for all possible platforms, you will return to a mobile version sooner or later. With 2.7 billion smartphone users worldwide, you cannot ignore such an important chunk of your customer audience.

Building a mobile app, in fact, means building two apps – one for Android and one for iOS. Of course, there are other platforms, too – Blackberry, Windows Phone – but you need to build at least for the two top ones. In its turn, it means two toolsets, two programming languages – Java and Kotlin for Android and Swift or Objective-C for iOS, two developer teams… extra costs, more time, you get it.

That was before React Native. When Facebook released this platform in 2015, mobile development has changed significantly.

Why is React Native so popular?

React Native joins the benefits of React and the advantages of native development. Simply put, it allows building apps running on iOS, Android, and Web. Moreover, it is a JavaScript framework, and with JavaScript quickly becoming one of the most popular languages in the developer community, the learning curve for React Native is not too steep.

React Native has its roots in React using one of its main concepts – reusable components. This feature makes the development much faster than with native technologies. This may be especially valuable when you are building something time-critical, such as an MVP.

As we mentioned already, React Native uses a lot of generic code that is similar for both iOS and Android. This makes updating the app much easier and quicker, as instead of updating two apps you only need to update one code with changes applying to both apps.

Another thing that developers love about React Native is the so-called “hot reload”. Hot reload means that you do not need to recompile your app every time you want to see the changes you have made. Applying the change takes approximately as long as refreshing a browser page. However, if you are using a native language to write your code, you will still need to recompile the app to see the changes you made.

How does React Native work?

Let’s briefly look at the basic concepts of React Native to see how it works.

Components

React Native components are basic building blocks that you can use in almost any app. There are common components, such as Text, View, or Image; UI components, such as Button Switch, or Slider. Besides, among the built-in React Native components, you can find iOS-specific and Android-specific ones that you can use to build native apps for a particular platform.

In addition to the components that are included in the React Native package, you can find dozens of libraries created by the developer community and containing other useful things that you can also add to your app.

React Native Bridge

The React Native Bridge helps to pass data between JavaScript and the native language. This way, developers can reuse the libraries that have been built specifically for iOS and Android and implement their functions in a cross-platform app.

The bridge allows calling native functions from the app by reaching out to the corresponding native libraries.

React Native Threads

React Native supports four types of threads each performing a specific function:

  • Main thread, or UI thread, used for native iOS and Android UI rendering.
  • JavaScript thread over which the JS code is executed and API calls are made. The JS thread passes all the logic of the app updating the native views.
  • Native modules thread used to reach platform-specific APIs when necessary.
  • Render thread generating OpenGL commands that are used to draw the UI.

What to consider when you are going to create a React Native app

Nothing is perfect, and with all the benefits of React Native, there are still certain drawbacks that you need to take into account.

Available libraries are often suboptimal or hard to find

As with many open-source projects, the libraries are often offered as alpha or beta versions. As a result, their performance is not always reliable. Many libraries are focused on one platform only and are not suitable for the other one.

Besides, though the number of available React Native libraries is rather large, the native libraries are still more numerous and diverse, not to mention their performance quality.

Building large React Native apps is difficult

React Native works great for small apps, but when you are planning a large project, be prepared for lots of issues and problems. A large app often requires bridges (aka Native Modules) to be written in React Native which makes the development extremely complicated.

With many bridges, you are getting too many asynchronous processes that need to be validated both on JavaScript and native language sides. This brings certain limitations in the app functionality.

Large React Native projects are more time-consuming

When a project reaches a certain size, it becomes increasingly harder to build and test. You may notice that while React Native can bring considerable time and resource savings in small projects, large applications may become too heavy to build and test quickly.

All these considerations lead to an obvious conclusion – React Native is great for small apps such as MVPs, startups, or non-sophisticated products. At the current stage, we recommend choosing native development if you are planning an extensive and complex application.

React Native use cases

Many popular brands integrate products built with React Native into their apps. If you search for React Native use cases, you are going to come across such names as Facebook (of course!), Bloomberg, or Instagram. However, these brands use React Native not as the primary framework for their apps but only for some of the functions.

For example, Facebook uses React Native for Facebook Ads, and it seems to be suitable for rather complex tasks that the product contains. Before React Native, a large part of the Facebook Ads code was already written in JavaScript, so the migration was not too difficult.

Instagram chose React Native to build the Push Notifications view. In push notifications, the UI is rather simple and using React Native allowed rolling out the new view very quickly. Instagram relies heavily on its mobile apps, thus, being able to share the code between the two platforms was a true advantage for it.

Bloomberg switched to React Native in its mobile app which is a personalized news feed. The company opted for React Native for its speed of development and easy updates.

Why use React Native?

We definitely recommend trying React Native as a framework to create simple apps that can run on both major mobile platforms – iOS and Android. React Native can save you both time and costs which may be especially appreciated by startups. With React Native, you can reach the widest mobile user audience within the shortest time possible.

Great news from our side!

QuickBlox is going to release a React Native SDK to complement its existing Android and iOS SDKs. This way, we are creating a complete mobile development offer giving you the freedom to choose either the fully native development or the cross-platform approach.

If you have any questions about React Native or QuickBlox’s implementation of this advanced concept, or if you need advice about setting up a React Native chat app, contact us for a detailed consultation.

Julia Poltavets

10 Benefits You Get As a QuickBlox Enterprise User – Part 2

Posted by Julia Poltavets on September 17, 2019

Last time we shared 10 benefits you get as a QuickBlox Enterprise User Part 1 and what custom-tailored solutions and technical assistance you get with it. In Part 2, we continue to elaborate on the advantages QuickBlox offers to its clients, and how the Enterprise Plan helps you to get more out of your business.

6. Extended monitoring/debugging and security/vulnerability measures

QuickBlox takes software monitoring seriously. Our mission involves collecting externally observable signals that help to measure a company’s IT security posture and provide information that enterprises need to manage and improve their own security performance and address security issues throughout their extended business ecosystem. In some cases, these are the vulnerabilities that pose significant risks to the companies which impact is easily observed.

Graylog

Graylog is one of the complex solutions for the management of both structured and unstructured data along with debugging applications. It is a tool for centralized collection, storage, and analysis of the log data on various events on the servers of the local network.

Graylog has a main server that  receives data from its clients installed on different servers, and a web interface that visualizes the data and allows to work with logs aggregated on the main server. It gives a clear picture of how the whole system and its separate components work in every given time period.

Virus Scanner

Quickblox solution also has the functionality for content scanning. It’s mainly used to prevent certain companies and individuals from sending viruses via our chat solutions.

QuickBlox virus scanner automatically checks all the data sent to the AWS S3. If any file contains a virus, it will be immediately terminated from S3 after the uploading. Also, database known viruses are automatically updated every 3 hours. For now, the virus scanner is implemented for AWS content and available for Enterprise subscribers only.

OSSEC

OSSEC is an open-source, host-based intrusion detection software to monitor and control your systems. It enhances the security monitoring platform by combining its HIDS monitoring features with Security Incident Management (SIM)/Security Information and Event Management (SIEM) capabilities. OSSEC helps customers to meet specific compliance requirements such as PCI and HIPAA.

NewRelic

How can you tell for sure that you haven’t found a weak spot and that mobile users do not create excessive load on the server with too frequent requests? How do you determine peak activity intervals, debug the application, notice minor bugs and monitor compliance with key activity indicators for your end-users? If you don’t have an answer to these questions, we have because NewRelic is specifically made to solve all these and many other similar developers’ questions and tasks.

Sentry

It is an open-source error tracking that provides visibility across your entire stack giving you the details you need to fix your bugs. A developer can use Sentry to resolve issues well before their users encounter them. Sentry lets users track, prioritize, identify, reproduce, and fix production errors across every application in their stack.

7. Dedicated calling infrastructure

Dedicated calling infrastructure is your personal safe solution for peer-to-peer and group calls. It provides a slew of benefits to the users including cost-effectiveness, failure resilience, and accessibility. The infrastructure itself is ensured through the following services.

Conference call server

With the conference call server, you can host your own conference calls. QuickBlox provides support for iOS, Android, and web browsers which essentially means that you can make conference calls using any platform. We offer you a powerful, high-quality, and highly secured video-conferencing software server.

ICE

In VoIP applications, communication through a central server does not only slows down the connection but is also rather expensive. On the other hand, if you consider dynamic address allocation, highly restrictive firewalls, and shifting network configurations, direct communication becomes complex as well. In this case, ICE, or Interactive Connectivity Establishment, is a promising solution.

ICE allows traffic to pass through various NAT (network address traversal) devices. It facilitates the use of VoIP telephony when you need to connect remote users in peer-to-peer networking as directly as possible. With ICE support, when clients want to connect with other devices, they first collect information about available IP addresses using STUN and TURN protocols, as well as information about configured IP addresses on its network interfaces where they can receive network traffic. And that is where ICE is valuable with its ability to combine the information received on the available IPs and, accordingly, build the most convenient routes to these IP addresses.

STUN servers

STUN is a set of tools that allows you to use NAT with network protocols working behind the UDP. STUN enables applications that work through NAT to detect the fact of address traversal and find out the Internet-side port to which a specific local port has been assigned via NAT.

Dedicated TURN server(s)

Dedicated TURN (Traversal Using Relay NAT) server prevents from sharing your cloud resources. TURN extends STUN capabilities to make media traversal possible even if clients are behind symmetric NATs. But that means that the whole traffic will flow through the TURN server because it serves as a relay. Therefore, our TURN servers use credentials or shared secret mechanisms to authenticate clients.

8. On-premise installation option

You can have QuickBlox solution in your secure zone of your own hosting infrastructure (your own data center). Our SiteOps team has extensive experience in the installation and support of the customers on their personal infrastructure, thus, don’t fret!

QuickBlox SiteOps team will:

  • prepare a list of questions for your quick onboarding and understanding your needs;
  • prepare the list of software requirements;
  • create a schema and suggest you network topology and hardware requirements;
  • provide you with practical advice on installation and ensure you with further support.

9. Custom data retention

At QuickBlox we understand that information retention might be a key feature for your chat application especially if you’re dealing with patients or sensitive accounting data. That’s why with the Enterprise plan, QuickBlox enables you to have your own retention settings in place and save all messages and content for a definite period of time. Following the general retention policy, QuickBlox automatically deletes any messages and content on your workspace that reach the maximum retention period. Being an Enterprise user, though, means that you can set your own data retention policy.

10. Perpetual license

A perpetual license grants you as a QuickBlox customer the right to use source code and add communication features to your applications as well as to modify our SDKs and APIs to your needs. In this way, you can be sure that you gain full control over your solution from both security and technical perspectives. Our development team constantly update our chat APIs and SDKs and we always stay in touch with you. Thus, you can sync up with us and ask any questions you have.

Best match of provided services and cost

Responding directly to customer demand, QuickBlox Enterprise Plan takes an integrated approach to deliver valuable product and appropriate technical support. And Enterprise is specifically made customizable to meet each Client’s unique requirements.

Explore how the digital transformation can help you accelerate yours by contacting our Sales Department at sales@quickblox.com.

Julia Poltavets

10 Benefits You Get As a QuickBlox Enterprise User – Part 1

Posted by Julia Poltavets on September 5, 2019

There are a lot of industry-specific business challenges that you must tackle to make a business successful. And no matter what field you’re covering, Healthcare, Finance, Marketplace or any other one, sooner or later you face a need in communication with your customers. Sometimes your prompt response or heads-up can help your clients to set up a deal or save someone’s life.

We at QuickBlox understand this. And with Enterprise Plan, we offer you our chat APIs and SDKs with fully customizable features to power your reliable messaging solution so that you could achieve the best possible business results, have effective resource utilization and reduce costs. But let’s not mince words.

Why Choose Enterprise Plan? Key Highlights

QuickBlox Enterprise Plan is a suite of fully-managed features for your businesses. It is specially created for those who want more control over data and security and suits best for professionals and enterprises requiring a lot of customization, high-quality technical support, SLA, as well as HIPAA and GDPR compliance.

1. Software Level Agreement

Software Level Agreement covers your back by stating that QuickBlox provides you with quality product and ensures you with prompt priority support and technical assistance. That said, your servers are maintained and monitored by QuickBlox SiteOps team with uptime guaranteed hereunder. Our experts are ready to assist you with integration, security, and scalability issues. Your dedicated QuickBlox Support Manager ensures that you get the most of your cloud communication infrastructure.

Basically, this agreement guarantees that QuickBlox is your trusted partner that takes over all the backend and maintenance work and provides you with assistance and guidance throughout our cooperation.

2. Best location for your Enterprise solution

Choose the closest location for your Enterprise solution to your audience to reduce backend response time and fit government regulations. Hosting options are various and include AWS, GCP, Alibaba, DigitalOcean, and Azure. We are also ready to help you with the on-premise setup of software systems to your cloud hosting instances as well as its maintenance.

What things should you consider when picking a location for your data center?

  1. First, define your target audience. It is important to determine where your end users are located. If you are serving customers across Europe, most likely you need a data centre in or close to Europe to ensure optimal performance and fit GDPR.
  2. Second, research web hosts before selecting a new service. Most of them include all the necessary information on their websites, but you may also have a good look around.
  3. And finally, check the data center performance. There are multiple resources for these. Having a clear understanding of data center capabilities will make it easier for you to make up your mind.

3. Prioritized Support with Personal Account / Support Manager

Personal Account / Support Managers are hands-on professionals with experience across all aspects of QuickBlox backend platform and its integration with your applications. They provide you with quick responses to your tickets for maximum efficiency and performance.

Your designated QuickBlox Support Manager will:

  • provide you with prioritized support sharing the best practice and recommendations;
  • analyze and resolve root causes of complex implementation and logical issues if any;
  • ensure you with advanced hands-on technical activities;
  • guide you through backend software updates and maintenance.

4. Data security and HIPAA-compliant encryption

Quickblox offers tools to help you meet national, regional and industry standards for the collection and use of personal data. Security and data protection is no empty boast. And alarming statistics of breaches just proves it. That’s why we take GDPR compliance seriously. And by GDPR compliance we mean protection of any personal data of our customers that we process and manage including names, addresses, ID numbers, as well as web data.
QuickBlox also provides to the companies HIPAA-compliant encryption as requested to protect data of healthcare data solutions across devices, processes, platforms, and environments.

5. Backend clusterization

In the course of work, server failures are inevitable. Even though many components are duplicated (like power supplies or cooling systems), it is impossible to guarantee 100% reliability of equipment. Each failure leads to losses. Risks increase with virtualization. In case of a hardware failure, several virtual servers may crash at once.

To avoid such problems, it is necessary to increase the reliability of equipment by magnitude, while maintaining the high availability of parameters of the terminal server. Since it is impossible to do at the server component level, we decided to introduce server clusterization.

A cluster is a group of servers connected through hardware, networks, and software and work as if they were one single server. The result is a fault-tolerant scheme where the failure of one or more of them does not affect the availability of services. To avoid this kind of issues at QuickBlox, we opted for HA/DR (High Availability and Disaster Recovery) Configuration.

HA/DR Configuration

High Availability is a business solution to ensure its own continuous operation. It allows the system to perform its functions continuously (without interruption) for a long period of time. HA is most often achieved through failure tolerance.

Still, there are failures that could not be prevented through a set of HA measures and, as a result, they slow down or completely terminate all business processes. It is when disaster recovery gets into a game. Disaster recovery involves a set of measures that enable to recover services, functions, and systems in case of an outage or other interruption. QuickBlox disaster recovery solutions typically involve manual activities.

These are not all the benefits QuickBlox offers to its customers. Check out Enterprise Plan Benefits Part 2 in our next blog post.