Hi Ben,
First, are there any support plans for scaling outwards? I know MarkLogic has splits clusters into multiple enodes and dnodes. But the idea is that there isn't one central bottleneck for requests.
BaseX as open source project provides no built-in features for horizontal scaling. We have built individual solutions for our commercial customers; feel free to write to info@basexgmbh.de if you are interested.
Second, I read about Jsoniq and was intrigued by it. It seemed like it supported JSON without requiring an XML intermediary. Having good JSON support would really help with frameworks like Angular or React.
Yes, Jsoniq is cool. We had some thoughts on implementing some years ago. In the end, we decided not to, because it would have introduced incompatibilities with features of the official XQuery 3.1 recommendation.
Nowadays, you have two choices in BaseX:
• If you are processing JSON documents in main-memory, you can use the standard XQuery functions to convert JSON strings to XQuery data structures [1]. Maps and arrays in XQuery are very efficient, and often a better choice than XML if you have to repeatedly process the same data. • If you want to store your data in a database, and benefit from indexing, updates, etc., you can convert JSON to an XML structure that suits you best [2]. You will notice that the time required for converting JSON to XML and backwards is hardly noticeable. In practice, it is frequently used to store and query millions of JSON documents in a database.
Hope this helps, Christian
[1] http://docs.basex.org/wiki/XQuery_3.1#JSON_Functions [2] http://docs.basex.org/wiki/Json_Module