XML is a de-facto standard for data communication between business partners. It is hard to find an industry where there is no a sort of standard XML schema (XSD) specifying data formats which can be delivered between parties.

Here you can see some samples of them. The XML documents communicated between parties must be processed, data must be extracted from them and stored in some persistent storage. Later this data usually used to produce another XML documents or reports and deliver them further. The data is also used for analysis and data mining.

In many companies this task is implemented in the following way: the incoming XML documents are parsed by standard parsers present on the market, data extracted from the documents and stored in underlying RDBMS, like Oracle, MySQL, PostgreSQL, etc. Subsequent data analysis and transformation performed by standard SQL queries.

Bagri provides an alternative solution for this task. There is no need to parse and store XML documents any more, Bagri will do this for you, very effectively. Further data analysis and transformation can be performed via XQuery, the functional language especially designed for this task by XML community. As opposite to many modern NoSQL solutions, Bagri completely supports ACID transactions, not only on the single document level, but in operations involving many documents as well.

Horizontal scalability and fault tolerance are another Bagri properties which helps to build enterprise-level solutions on top of it. As it was already told, Bagri does not stick on XML documents only. It can be used to process and store JSON documents too, for analysis of Twitter messages, for instance.

Another use case for Bagri: processing of XMPP messages used in IoT. Because of its highly scalable distributed nature Bagri can store and efficiently process tens and hundreds of millions of such documents holding terabytes of the data itself.