-
Notifications
You must be signed in to change notification settings - Fork 0
/
DESIGN
28 lines (16 loc) · 1.06 KB
/
DESIGN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
TERMS
=====
Collapsing - reducing an object into DB entry
Linking - the reverse of collapsing, DB Entry => Object
Node - a wrapper for object, providing a common interface during serialization, also wrapper for Entry
Entry - a simple JSON data structure, which will be stored/loaded in/from backend
DESIGN DECISIONS
================
- Only store Joose instances and standard [], {}, because how we can determine the meta-data for arbitrary JS class anyway?
we need class constructor to expand the objects (URL for module and/or name of class)
for example in the commonjs there is no even concept of class (?)
- we need to store objects with traits correctly
- system should be suitable for both client/server sides usage (no naive assumptions about the environment)
- we'll have to pollute each and every object with unique __REF__ property, to track the object's relationships
- system should be non-blocking (JooseX.CPS everywhere)
- system should queue communication with backend as much as possible to avoid/reduce latency problem