QEWD-JSdb: It's a Database, Jim, but not as we know it! - Rob Tweed at LNUG, Jan 2020
QEWD-JSdb is a new concept for databases in Node.js. Although it's implemented on top of two incredibly fast, industrial-strength (though little-known) physical database technologies (the Open Source YottaDB and the proprietary IRIS databases), QEWD-JSdb abstracts their underlying hierarchical physical storage as on-disk JavaScript objects, blurring the boundary between what's in-memory and what's on-disk.
With QEWD-JSdb, the database is no longer something that exists on another server, no longer effectively a separate technology that you access via a network connection using its in-built APIs, and which imposes on you a database model over which you have no control. Let's face it: most mainstream databases are "one trick ponies" that model data in one particular way: fine if all your database requirements fit that model, but most likely you'll have circumstances that mean you either end up consuming valuable time fighting that model to fit your needs. or end up having to support multiple databases with all the resulting additional pain, aggravation and maintenance overhead.
With QEWD-JSdb, there's none of those restrictions and annoyances: your persistent data and its modelling is in your direct control within your Node.js processes! As far as you're concerned, you're just dealing with JavaScript objects/JSON, but rather than being in-memory, they happen to be on-disk!
But you're not limited to persistent JSON: it's easy to model pretty much any type of database, both NoSQL and Relational/SQL on top of the basic persistent JSON data structures. In fact, QEWD-JSdb comes with some already created for you to use and/or explore, including:
Redis-like Key/Value (actually Key/Object) store
Redis-like Lists
Document/JSON database storage
XML DOM database storage via the DOM API, with XPath querying
Relational with SQL read/write access
Once you're familiar with the basics of QEWD-JSdb, you can create your own custom database model if the built-in models don't meet your needs: no more time wasted fighting the database!
It's even possible to simultaneously apply different database models to the same physical QEWD-JSdb data!
All sounds too good to be true? Come and find out at Rob's talk on QEWD-JSdb.
Rob Tweed (@rtweed) is a Director of M/Gateway Developments Ltd, and has been part of the LNUG scene since its earliest days - he was one of the speakers at its inaugural meeting, and has given a number of talks over the years, mainly focused on his Node.js-based QEWD technology/platform.
Rob has several decades of experience, developing and advising on real-world complex, business-critical applications around the world, in sectors such as healthcare IT, financial services and retail systems. He's specialised in database integration for Web and Internet technologies since the early days in the mid-90s, and has been immersed in Node.js since its earliest days in 2011!
A keen proponent of Open Source software, you can find all his work (including QEWD-JSdb) at @robtweed