views/README.md

50 lines
1.1 KiB
Markdown
Raw Normal View History

# views
A Clojure library designed to ... well, that part is up to you.
## Design
Subscription
* subscribe to a view
* unsubscribe from a view
* remove all subscriptions (disconnect)
* get set of subscribed views
Deltas
* send deltas
* broadcast deltas
* receive deltas ( receive deltas from any other clients and broadcast out to subscribers a.k.a. broadcast deltas )
DB
* calculates pre-delta checks (heuristic optimization)
* calculates actual deltas
* different heuristics for inserts, updates, and deletes
* different properties for outer joins
* pre-checks and delta calculations are coupled:
- we don't know if we need to calculate insert deltas until we do the insert and see if the result affects a view
How should DB code work?
- separate namespaces for insert, update, delete?
- low-level db actions (execute/query/transaction/etc.) should be separate namespace?
- initial view computing (view map, args, etc.) should be separate namespace?
## Usage
FIXME
## License
Copyright © 2014 FIXME
Distributed under the Eclipse Public License either version 1.0 or (at
your option) any later version.