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

Switch to using Database/Store to stateful data #8

Open
2 of 6 tasks
mihok opened this issue Mar 7, 2017 · 1 comment
Open
2 of 6 tasks

Switch to using Database/Store to stateful data #8

mihok opened this issue Mar 7, 2017 · 1 comment
Assignees
Labels

Comments

@mihok
Copy link
Member

mihok commented Mar 7, 2017

Today we use a rough in-memory key-value store that dies when the daemon stops running.

Tomorrow we should have the ability to save stateful data in a database or store. Ideally the less opinionated we are in how/where that data is saved the more ideal it is for handling any situation.

Implementation thoughts

I want to keep the idea of storage being agnostic and extensible. My thinking is to expose some sort of interface for storage engines to plug into. The current thought here would be using Google's protocol buffers as the interface medium. Instead of requiring a code change to the daemon itself when updating or adding a storage engine, we could somehow have an endpoint or port that is pushed data from the daemon in the form of the protobuf packet. From there, the storage engine could take the packet and do with it what it wants.

The daemon itself will still need to keep a cache of socket connections on hand but can offload the more stateful data to storage

  • Convert current data types into protobuf
    • Add .proto files for each type (Person, Operator, Client, Chat)
    • Investigate ways to pass protobuf data to external sources
    • Implement MySQL storage engine (SQL)
    • Implement SQLite storage engine (file)
    • Implement Redis storage engine (NoSQL?)
@mihok mihok mentioned this issue Jun 24, 2017
6 tasks
@mihok mihok self-assigned this Jul 8, 2017
@mihok mihok added this to the 0.2 milestone Jul 8, 2017
@mihok mihok mentioned this issue Aug 5, 2017
@mihok mihok removed this from the 0.2 milestone Aug 13, 2017
@mihok
Copy link
Member Author

mihok commented Aug 31, 2017

Putting this on hold for the moment

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

No branches or pull requests

1 participant