-
Notifications
You must be signed in to change notification settings - Fork 4
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
Project Status #29
Comments
Hey, thanks for considering this project. I'll try to answer your questions as of the current time:
Yes, I do want to keep maintaining this project for as long as my time allows. It started from a work project where a fast embedded storage for domain events, that does not need to rescan the whole database on every start (like other embedded document stores like NeDB or TingoDB do) was needed. Unfortunately, the focus on this work project has shifted away and therefore also a bit of my focus on this storage, because I'm not actively using it at the moment. Still, this is to-date my most loved pet project.
The storage engine is written such, that it only appends to files which makes catastrophic data loss very unlikely - only in the case of hard disk failure. So if that is something you need to cater for, you need to deploy a backup strategy, but this can also be done easily, because of the append-only nature so you can safely create copies of the files.
The only real reason is, that this is not battle-tested enough. We have used it in this work project mentioned above and stored hundreds of megabytes of event data in it repeatedly during the testing phases without problems. We also added a replication protocol based on RAFT (https://raft.github.io/) on top, also without problems. However, since the project was put on hold no further experience could be collected beyond this. What is keeping me from removing this warning, is collecting more information on behaviour, especially regarding failure scenarios and data loss and then covering this with tests. So I'm motivated in working in this part if anything comes up. Hope this is of help to you. Let me know if there are any further questions. |
Little status update, this is currently in the works as part of #31 in the PR #107 and the most important prerequisite to solving #24 has been implemented with #80. The goal is to have crash recovery in version 0.8 |
Further update, as 0.8 has been released (took quite long, but I'm still on this project): The storage can be recovered from torn writes after a crash with #155 - this does not yet include synching up indexes that have fallen behind due to a crash, or commits of multiple events where the write has failed in between. This is the next step. |
I'm considering an event sourcing system for my backend. My intention is to have an in-memory application state and any modification to this state is stored as an event.
I want to know what is the status of this project, specifically:
Thank you.
The text was updated successfully, but these errors were encountered: