Comments (8)
I am working on the first prototype of ViewDB, here's an excerpt from its README:
ViewDB
ViewDB is a database that allows inferring multiple, potentially overlapping
(and even mutually inconsistent!) domain models from statements of facts.
At its heart, it is not too dissimilar from the concept of event sourcing,
but it prioritizes late and lazy domain binding: the ability to produce the
aforementioned models on-demand without replaying all events in a particular
stream to produce a representation of some state, or even having a need to
draw the lines between event categories in order to split them into different
streams.
Facts (this name was chosen instead of "events" to further clarify their
nature) are the source of truth in ViewDB and the principal entity type that
gets persisted.
I've got some interesting ideas as to how everything can be simplified down to attributes and how this can lead to fluid yet explicit fact schemas.
from pumpkindb.
The biggest issue here is IMO that projecting 'facts' to entities/models/whatever requires a lot of business logic.
So you need a (ideally strongly typed) language to define that business logic.
Any ideas on that front?
from pumpkindb.
Yes, there has been a plan to introduce Typed PumpkinScript. Essentially a type checker for PumpkinScript. Just haven't got around to do that.
from pumpkindb.
Here's the issue on that: #141
from pumpkindb.
But PumpkinScript is way too low level for normal devs to write business logic in.
from pumpkindb.
That is also very true. There were some conversations about building either transpilers for other "higher level" languages into [Typed] PumpkinScript and/or compiling to a common intermediate representation, which is yet to be done, but very necessary anyway.
from pumpkindb.
I just published an overview of ViewDB's core ideas: https://github.com/ViewDB/ViewDB#readme
from pumpkindb.
i dont mind its low level. but i do mind of its lack of examples
from pumpkindb.
Related Issues (20)
- Problem: nom dependency outdated
- Problem: numerous mio deprecation notices HOT 1
- Problem: non-trivial to detect if JSON's value is an integer or a float
- Problem: overflowing integer literals are parsed as instructions
- Problem: Documentation of master is out of sync with code too often
- Problem: is overwriting key/value with the same value a duplicate? HOT 2
- Problem: zero terminated by period doesn't get parsed right
- Problem: integer constants in builtins get interpreted as instructions
- Problem: switching storage backends is nearly impossible HOT 2
- Problem: different users would use different naming conventions
- Problem: "builtins" files don't allow for computed constants HOT 2
- Problem: lazy builtins! macro defers syntax checking until run time
- Problem: sharing stack with closures prevents typing
- Problem: use of return stack to accumulate values reverses them
- Problem: return stack nomenclature differs from Forth
- Problem: Rust nightly after 2017-06-20 affects benchmarks negatively HOT 2
- Problem: Missing input / output elements from queue operations
- Is this project abandoned? HOT 3
- `Read` on uninitialized buffer may cause UB ( `PacketReader::read()` )
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pumpkindb.