Hi folks, I've just looked at the frontpage (zookeeper.apache.org/bookkeeper), and it says pretty much nothing about what bookkeeper is and what it's good for. There's even a header "What is the BookKeeper?". The? This isn't even good english.
Anyhow, I propose we add some text to make what bookkeeper does more understandable, especially for people who are unfamiliar with distributed systems. I've just knocked out some text, which I'll add to the frontpage tomorrow if there are no strong objections. Suggestions are welcome of course. -Ivan <snip> h2. What is Bookkeeper? Bookkeeper is a log replication service which can be used to build replicated state machines. A log contains a sequence of events which can be applied to a state machine. Bookkeeper guarantees that each replica state machine will see all the same entries, in the same order. h2. Eh? What good is that to me? Imagine for example that you have a database that you want to be able access even if the database server goes down. You'll need to replicate it to multiple servers. You need to ensure that if one database sees an update, all databases see the update. But what happens if one database server is cut off from the network for a time? Or if two clients try to update the same field at exactly the same instance? This is where log replication comes in. A database can be seen as a state machine. It is the sum of all the updates which is has applied since its initial state. Therefore, if you consider your replicated database as a replicated statemachine, you can do the replication using log replication service. If all updates are written to the log replication service before being applied to the database, then the database will continue to be available and consistent even if some of the replicas fail. This approach can be applied to many types of distributed systems, such as messaging systems, coordination systems, filesystems, etc. h2. What bookkeeper is not? Bookkeeper has nothing to do with application/error/trace logging. There are already many projects (link to log4j, slf4j, logback) dedicated to that problem. h2. How about Hedwig? Hedwig is a distributed publish and subscribe system, which uses bookkeeper to replicate its messages. </snip>
