Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 57 lines (32 sloc) 2.352 kb
f2e2bfea » chrisdew
2012-03-20 first commit
1 DeltaQL
2 -------
3
4 Imagine a database (like MySQL or SQLServer) whose 'result sets' automatically update as the underlying data changes. Add to this a facility to extend these 'deltas' all the way to the browser.
5
6 Welcome to DeltaQL - no more F5, no more polling the DB.
7
8
9 Deliverables
10 ------------
11
12 DeltaQL has five deliverables:
13
14 1. The Bootstrap App. A minimal NodeJS web app with just one live page - ideal to build upon.
15
16 2. The Server Library. This is written in Javascript for NodeJS and is used by both your NodeJS web applications and any (optional) separate databases. DeltaQL can be run both in-process and as separate server process(es).
17
18 3. The Browser Library. This runs on the browser and builds on top of KnockoutJS.
19
20 4. The eBook. Income from this $9 ebook will support the development of DeltaQL.
21
22 5. The Blog App. A working example of a web app built with DeltaQL, possibly demonstrating best practises.
23
24 All except the eBook will be available on GitHub under the MIT license.
25
26
27 Persistance
28 -----------
29
30 DeltaQL operates in memory. It has hooks to add persistence to MySQL, Postgres or any other NodeJS supported database. Use DeltaQL for all your 'live' clients, yet persist your data in a database which you trust.
31
32 The only built-in Persistor is the simple, but inefficient, JSONFilePersistor. Any others will need to be written (for MySQL, etc.) but it's not hard.
33
34
35 Origins
36 -------
37
38 When I found myself solving the same 'data freshness' and pub/sub issues in NodeJS for the third time, I recognised it as a need and created the DeltaQL project.
39
40
41 Built on the Shoulders of Giants
42 --------------------------------
43
44 DeltaQL uses NodeJS, Express, Socket.IO, Mocha, KnockoutJS and much other uncredited work from the open source community. Thanks to all of those who've made DeltaQL achievable in only tens-of-hours of design and coding.
45
46
47 Jargon
48 ------
49
50 This may be useful if you start diving into the code.
51
52 * Lop - a List OPeration. This is a delta which keeps a two ResultLists in sync.
53 * ResultList - an *ordered* list of rows.
54 * ResultSet - a set of rows.
55 * Row - a JSON object with an 'id' field containing an unique string (often a UUID) and zero or more further fields.
56 * Sop - a Set OPeration. This is a delta which keeps a two ResultSets in sync.
57 * LivePage - any web page containing one or more ResultLists.
58
Something went wrong with that request. Please try again.