lni / dragonboat

A feature complete and high performance multi-group Raft library in Go.
Apache License 2.0
5.06k stars 541 forks source link

about to replace etcd with dragonboat. can i trust financial information on it? #307

Closed kolinfluence closed 1 year ago

kolinfluence commented 1 year ago
  1. about to replace etcd with dragonboat. can i trust financial information on it?
  2. how production ready is this?
  3. when is v4 coming out?

advisable to use dragonboat in mission critical infrastructure?

may sound harsh tone but hope to have a concrete reply.

p.s. : @lni it's amazing work truly. hope to see it replace etcd in future.

lni commented 1 year ago

can i trust financial information on it?

can I ask what do you mean by "financial information"? there is no "financial information" in dragonboat github repo. It is a free open source project licensed under Apache 2, meaning you don't need to pay any $ to read, use, modify, fork it.

also btw, it is project not backed by any commercial company, it means the library is not backed by "unlimited $ budget" to get feature X done within Y weeks. the good side of it is that the project is also not linked to any financial expectation - it will always be maintain as long as there are active users and it is interesting to do so for me. right now, consensus is not only interesting to me, it is my favorite part of Computer Science.

how production ready is this?

there are quite a lot companies using it in various projects. I also used it in a few of my own work projects.

as of today, there is no known correctness issue on the raft implementation itself, meaning I am not aware of any bug that can cause your data to be lost or your raft shard to get stuck due to some dragonboat bugs.

when is v4 coming out?

all new features for v4 is already in the master branch with the new raft log storage feature being the biggest change of v4.

another major change I am planning is the API refactoring to make it easier to understand & use. sadly, I wouldn't be able to spend lot of time on that in the coming few months as I am working on some other consensus related projects.

my suggestion is to go ahead and use the master branch. it is pretty stable in terms of all features. its APIs are going to change when v4 is ready, but we are talking about 15-30 minutes work on user's side when that happens. If you don't mind that, please go ahead and use the master branch.

advisable to use dragonboat in mission critical infrastructure?

it depends on what do you mean by critical infrastructure.

it has never been used in nuclear power planet kind of life-critical systems, but several companies are using it to power their large customer facing online services in which any loss of data or unplanned extended downtime is considered as big no go.

to also provide you some extra confidence -

dragonboat is extensively tested, the last bug that could cause data to be lost or to get your raft shard to be stuck were caught & fixed about 3 years ago. I am also very motivated to fix any such critical issues - I will put down my work project and spend 100% of my working hours to fix such critical bugs if any of such future issues can be proved beyond reasonable doubt.

hope to see it replace etcd in future.

they are different systems with very different goals.

kolinfluence commented 1 year ago

@lni so means can be used in banks or military use?

i would like to use it to replace etcd. why do you mention it's different goals? what's the difference? i really thought it was etcd replacement.

i am about to use it across all my deployments to replace etcd. etcd seemed stupid compared with dragonboat now. advisable?

kolinfluence commented 1 year ago

i have discovered plenty bugs for other big corp's solution. let's hope i can discover some and improve urs too. will be using dragonboat plenty. thx for the great work.

kevburnsjr commented 1 year ago

The largest scale production deployment of Dragonboat that I know of is MatrixOne. https://github.com/matrixorigin/matrixone

I'm sure some customers are safely using MatrixOne for financial data given that it's marketed for use in CRMs and ERPs.

Bear in mind that there are a lot of other considerations when storing financial data (security, backup, recovery, data protection, access control, auditing, etc) which are well outside the scope of Dragonboat.

lni commented 1 year ago

Sadly, quite a few deployments are not open source software. This is not rare in Chinese internet companies - they usually don't open source their stuff, or they pretend to open source (called open source for KPI).

i have discovered plenty bugs for other big corp's solution. let's hope i can discover some and improve urs too.

that will be great.