Tigase XMPP Server
Tigase XMPP Server is a software created to build low cost, large scale communication systems.Contact our sales team
Tigase XMPP Server is our flagship server software writen in Java to build Instant Communication (IC) systems. The most basic explanation is that Tigase is a chat server, but it is so much more than just that.
Tigase XMPP Server is Java based software
Tigase XMPP Server is a standalone application written in Java. It is not a “web server” system. It runs independently from any other software. In most cases all it needs to run is Java Virtual Machine (JVM). For extended functionality it may require a few external libraries for the most part it is all in-house developed software.
Java based but still very efficient
Java is known and infamous for it’s high resource requirements and slowness. This unfortunate, bad reputation is a result of early impressions from the first years of Java and also from poorly written, bloated Java monster software. Poorly written and poorly maintained software results in tons of redundand code and overall slagishness.
There are, however, many Java programs which are good examples how efficient, fast and resources friendly Java code can be. And Tigase XMPP Server is one of these good examples.
We put a lot of effort to optimize, design it and implement efficient code. Here are some interesting facts:
- The main binary code to run Tigase XMPP Server is less then 3MB
- In some cases it can be run with as little as 10MB of RAM, usable, typical XMPP chat system can be deployed on 50MB of RAM
- It was successfully tested to handle over 30 millions messages per second
- It runs on production systems with over 10 million users
- It runs on production systems processing over 5 millions messages per second
- Typical message processing time is below 0.01 second if database is not involved
We frequently put Tigase XMPP Server through very rigorous testing. Running hundreds of automated tests, performance tests and long-lasting reliability tests. This allows us to discover bugs, inconsistencies, bottlenecks, memory leaks and other potential problems in long-running applications.
Every release is thoroughly tested and verified before publication.
Tigase XMPP Server is known to run for over 3 years without restart on a production system.
XMPP was designed from ground up to be secure. Tigase, however, does not stop there. We took additional steps to make sure Tigase provides up to date security.
Through extensive testing, third-party verification, we make sure it is a well written software, resistant to all common attacks, including SQL injection, DOS attacks, man-in-the-middle attacks and many others.
We closely track changes and developments in the security protocols and make sure Tigase is up to date, uses only safe ciphers and algorithms.
Additional, hardened mode, turns Tigase into very restrictive configuration, which may break connectivity with older apps and servers, but on the other hand, ensures that security it tightest possible for demanding customers.
Tigase uses resources very efficiently. It can easily handle half a million users on a single server or more. But no matter how efficient the server is and how optimized the software is, there is a limit on how much a single server can handle.
Therefore, from the very beginning we planned on making Tigase scalable. Out of the box Tigase offers near-linear scalability or exact linear for some use cases.
It can be deployed on large number of servers over distributed data centers and cloud providers to provide a single logical system for practically unlimited number of online users sending millions of messages per second.
Tigase XMPP Server is Java application and can be deployed on anything that can run Java programs. It does have some special integration features for Amazon AWS cloud system but it can run on any Cloud. Our customers deploy Tigase on Google Cloud, Microsoft Azure cloud and many others and also on in-house dedicated data centers.
Tigase has a built-in load balancer to better distribute connected users and devices but it can also play nicely with external load balancers which are used on different environments.
Tigase XMPP Server can be used as it is.
Out of the box it is capable to provide sufficient functions for typical XMPP systems and in many cases for not so standard XMPP services.
There are, however, deployments with specific requirements or third-party systems with which Tigase has to integrate. For such cases, Tigase XMPP Server offers exceptional flexibility. Well designed and rich API allows adding custom elements like blocks.
There is no single line of code in Tigase which is fixed. Anything and everything can be replaced with custom made code and plugged-in through configuration file.
From our experience we know that starting a complex system is a big challenge. However, even greater challenge is maintaining such a system long-term. Therefore, we have put a lot of effort to make sys ops life easier.
There is a huge number of tools built-into the Tigase XMPP Server which make maintaining Tigase much simpler than expected:
- Command line tool to execute all admin tasks
- Web UI for admin to see critical system parameters and performance metrics
- Thousands of runtime performance metrics allow to diagnose system in real-time
- Built-in self-monitoring system which can send notifications via email or XMPP if it detects problems
- Detailed diagnostic log can be switched on/off
- Detailed diagnostic log for a single user can be switched on/off
- Audit Log
- Self-fault recovery
- Automatic cluster reconfiguration
Easy to track performance
Proper monitoring is one of key areas we focus during development, testing and maintaining services. Tigase XMPP Server offers thousands of run-time performance metrics, which allow to track the system in real-time.
Every significant processing unit generates performance metrics, therefore if there is any slow down or a bottleneck it is very easy to diagnose the system, locate the problem and fix it.
Easy to integrate
There are many ways to integrate third-party systems with Tigase XMPP Server.
It has very well thought and rich API which allows to add new components and plugins. These plugins can interact with other systems to exchange information.
However, Tigase employs a common pattern for so called “Connection Managers” which are responsible for network communication. Each connection manager talks a different protocol and Tigase can easily learn new protocols to connect to virtually any external service to exchange information in real-time.
Tigase also offer access through REST API which can be easily extended using various scripting languages. This is a powerful feature which allows to add new REST API calls using a programming language of your choice.
Tigase XMPP Server can be also configured to retrieve users’ data from different databases storing data in different formats. This allows for an easy integration with other systems without writing a single line of code.