There are a few core design principles that steer the technical design of NoSQLBench. They are shared here in the hopes that they will help others understand what NoSQLBench is all about.
Respect for Users
While this sounds like a conduct level aspect, the focus here is on what this means in terms of design. Respect is absolutely part of the code of conduct governing this project as well.
What this means is that we try to build systems which respect users in general and in specific ways which can only be tackled through thoughtful design.
We focus on core concepts that stand the test of time, and as such give time back to users. We look for concepts which give back more in terms of clarity and reuse than they take away by indirection. We build patterns of use around these concepts which bring users together in common practice and understanding and move the testing ecosystem together as a whole.
We build composable systems such that they can quickly be used in a pre-built form at a high level. We make them reconfigurable by those who need so that they can be repurposed into something more contextual. In this way, we provide a sliding scale of user experience, where users' time is exchanged for incremental value in results.
We build high-fidelity measurement tools and instruments into NoSQLBench, so that the results are not only useful, but repeatable and reproducible. We build efficiency into the NoSQLBench machinery, so that testing tools maintain headroom enough to make accurate measurements at speed.