Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem: PumpkinDB is too low-level #325

Open
yrashk opened this issue Jul 5, 2017 · 8 comments
Open

Problem: PumpkinDB is too low-level #325

yrashk opened this issue Jul 5, 2017 · 8 comments

Comments

@yrashk
Copy link
Contributor

yrashk commented Jul 5, 2017

For most end-user cases, PumpkinDB is too "close to the metal" to be easily plugged into a business application, especially if "event sourcing" type of scenarios are considered.

Proposed solution: implement a higher level database on top of PumpkinDB

@yrashk
Copy link
Contributor Author

yrashk commented Jul 5, 2017

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.

@theduke
Copy link
Contributor

theduke commented Jul 7, 2017

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?

@yrashk
Copy link
Contributor Author

yrashk commented Jul 7, 2017

Yes, there has been a plan to introduce Typed PumpkinScript. Essentially a type checker for PumpkinScript. Just haven't got around to do that.

@yrashk
Copy link
Contributor Author

yrashk commented Jul 7, 2017

Here's the issue on that: #141

@theduke
Copy link
Contributor

theduke commented Jul 7, 2017

But PumpkinScript is way too low level for normal devs to write business logic in.

@yrashk
Copy link
Contributor Author

yrashk commented Jul 7, 2017

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.

@yrashk
Copy link
Contributor Author

yrashk commented Jul 8, 2017

I just published an overview of ViewDB's core ideas: https://github.com/ViewDB/ViewDB#readme

@yunfan
Copy link

yunfan commented Dec 21, 2017

i dont mind its low level. but i do mind of its lack of examples

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants