We have been developing Kuzzle for a year and this new version is a great moment for us: “its real life test”. We’re on the right track for our first stable release!
In this article we talk about new features and we give you have all the elements to discover, test and use Kuzzle.
WHAT IS KUZZLE?
KUZZLE: A BACK-END SOFTWARE, YOU CAN INSTALL & USE OUT-OF-THE-BOX TO BUILD MODERN APPS
Kuzzle is an “on premises” (ie self-hostable) back-end solution for various applications: web, mobile, IoT, information systems… The back-end of an application is what the end-user doesn’t see. To say it in other words, it’s the backstage of the application. An on premises back-end is an installable, ready-to-use product made to handle all your back-end needs. Kuzzle back-end enables application developers to focus on the core of their job. Kuzzle offers an API to manage application data: in real-time, synchronization, notification, storage, research, data analysis, etc.
HOW IT WORKS?
A GLOBAL OVERVIEW OF KUZZLE ARCHITECTURE:
KUZZLE KEY FEATURES
NOTIFICATIONS THAT HIT THE NAIL ON THE HEAD
Kuzzle subscription system allows to receive notifications about real-time messages, document changes, and other users activity.
But that’s not all, our subscription system embeds a fine-grained filter system including geolocation functionalities. This enables you to subscribe only to what is needed by your applications.
Do you want to receive real-time notifications about players in the same game room? From people located around you? Or get some news about specific products?
Let Kuzzle filter these notifications for you, and focus only on building your application!
ADVANCED USER MANAGEMENT
Kuzzle features a complete rights management layer, using users, profiles, and roles to separate and distribute rights attribution.
This system allows defining rights with precision, while keeping the management of large number of users easy.
- Roles define what actions can be performed and on what collection of documents. Roles can also embed custom code in case there is a need to grant rights on certain conditions.
- Profiles can have as many roles as needed.
- Each user gets at least one profile.
Every application needs a back-end, but no back-end can answer to every possible use cases on its own.
That’s why we dedicated a lot of efforts to create a thorough yet easy to use plugin system.
Thanks to it, you can adapt Kuzzle to fit your needs.
To make sure Kuzzle will be able to adapt to your environment, we made almost every aspect of Kuzzle accessible to plugins.
We set up five plugin classes:
- Listeners: listen to what’s going on in Kuzzle, from ingoing or outgoing data to system activity, subscriptions, logs, and so on.
- Pipes: if listening to events is not enough, you can also validate or even modify data on the fly!
- Authentication: Kuzzle can support any authentication strategy, including (but not limited to!) Facebook, Kerberos, Github or Salesforce
- Controllers: add new actions to Kuzzle. Do you want to create new functionalities specific to your needs? All it takes is a few lines of code!
- Protocols: Do you need to communicate with Kuzzle using a proprietary protocol? Check out how it is done with our Socket.io plugin.
AN EASY BACK-END ADMINISTRATION:
Because there can’t be a back-end without some way to administrate it, Kuzzle is shipped with Kuzzle’s Back-Office application.
Lightweight and working on any web browser, Kuzzle Back-Office let you navigate and modify your database, view real-time messages, administrate users, and also system metrics.
Many more functionalities will be added during beta version as we want to make Kuzzle’s Back-Office able to manage every aspect of Kuzzle.
Using Kuzzle within your application can be done using Kuzzle SDKs.
All SDKs share the same structure, and strictly follow our SDK Documentation.
This means that building multi-devices applications with different languages will lead to similar code to access Kuzzle, reducing development and maintenance costs.
We also have mobile devices in mind: our SDKs include an advanced offline mode, allowing to easily handle network instability.
HOW TO USE KUZZLE BACK-END?
Allow front-end / UI team to build modern apps without any backend gurus, they just need a Kuzzle SDK. You can reduce the back-end development time & cost and focus more on the user-interface.
Because Kuzzle is an open-source project, you can contribute and improve functionalities. We have some basic contributing rules to follow, but nothing too compelling. There are mainly 3 ways of contributing, depending on what you have in mind for Kuzzle. Since we adopted a plugin-centered system, the easiest way to add new functionalities is to write new plugins. You can check our Plugins Documentation in our main project repository. You can find some plugins examples on github.
On the other hand, if you have any idea that could globally improve Kuzzle you can also contribute to the core project.
Lastly, we have a JS/NodeJS SDK and an Android one. We have already planned to write an iOS SDK during beta. So if you wish to use Kuzzle with other languages, do add your own SDK!