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

Local store #10

Open
gedw99 opened this issue Dec 18, 2020 · 6 comments
Open

Local store #10

gedw99 opened this issue Dec 18, 2020 · 6 comments

Comments

@gedw99
Copy link

gedw99 commented Dec 18, 2020

Dynamo dB is cool but I was wondering if you are tempted to reconsider also supporting self stores too. So people can use AWS or local

genji is similar to dynamo dB in that it’s badger dB ( a kv store of sorts ) with a sql document dB on top.

been using if for a large project and it’s been ok. A few shaky edges but easy to work around until it’s better.
Speed is really great.

https://github.com/genjidb/genji

there is no HA aspects integrated however many have managed to use raft with badger dB for replication.

I am hoping this is of interest and if you want some help with it because the basis of event horizon looks in line with how I think CQRS is best used.

@joonas-fi
Copy link
Member

The previous version of EventHorizon worked with local-only store (BoltDB), and I was meaning to add Raft on top. I quickly realized it's a daunting problem, and opted for DynamoDB instead.

Once I get EventHorizon into a satisfactory working condition, I plan on making the direct dependency on DynamoDB an interface, and thus one can make plugins for different storage engines.

I used BoltDB in the previous version, so that's somewhat likely to be added as plugin next to DynamoDB. But I am currently not planning to add a Raft layer - if one wants high-availability storage, then the HA should be provided by the storage engine itself (like DynamoDB does now in my current design)

@gedw99
Copy link
Author

gedw99 commented Dec 22, 2020

The previous version of EventHorizon worked with local-only store (BoltDB), and I was meaning to add Raft on top. I quickly realized it's a daunting problem, and opted for DynamoDB instead.

Once I get EventHorizon into a satisfactory working condition, I plan on making the direct dependency on DynamoDB an interface, and thus one can make plugins for different storage engines.

I used BoltDB in the previous version, so that's somewhat likely to be added as plugin next to DynamoDB. But I am currently not planning to add a Raft layer - if one wants high-availability storage, then the HA should be provided by the storage engine itself (like DynamoDB does now in my current design)

Yeah i dont want to use others clouds and their Databases.

Its possible i think. But yeah requires more work, etc

Most people are using this:
https://github.com/lni/dragonboat

Example
https://github.com/atomix/dragonboat-raft-storage-node

@joonas-fi
Copy link
Member

Yeah i dont want to use others clouds and their Databases.

Out of curiosity - why? If the data is encrypted and because the cloud provider doesn't have access to the encryption keys, they can't access the data. You get a highly available datastore that you don't have to manage.

Managing one's own highly available cluster of databases is not free regarding work hours either.

@gedw99
Copy link
Author

gedw99 commented Dec 22, 2020 via email

@joonas-fi
Copy link
Member

I don't get it, if the data is encrypted and the encryption keys never touch AWS, the only threat from AWS is that they take your database down. They can't look at what's inside the database..

@gedw99
Copy link
Author

gedw99 commented Dec 22, 2020 via email

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

No branches or pull requests

2 participants