Mongo Conduction: Or, What I Did For Spring SkunkWorks
MongoDB, Inc. holds quarterly skunkworks sessions—basically a hackathon, but more relaxed. We set aside three days to work on neat hacks, or to start deep projects that need uninterrupted concentration, or to do something new outside our regular duties.
For SkunkWorks last week I did three related projects:
MockupDB, a MongoDB Wire Protocol server written in Python.
Mongo Conduction, a server that receives Wire Protocol messages and creates test deployments of MongoDB servers. It looks sort of like a JSON-over-HTTP RESTful API, but what it actually does is a BSON-over-Wire-Protocol RESTful API.
A test-suite runner written in C. It reads our standard driver test specifications from YAML files, sends commands to Mongo Conduction to create the cluster, and connects the C Driver, libmongoc, to the cluster. It does operations with the driver, and sends more commands to Mongo Conduction to alter the cluster while the driver is connected to it, and asserts that the outcomes of the driver operations match the expected outcomes from the standard test.
In the demo I'm using CLion, a new C/C++ IDE.
If you use the closed captions I added, let me know if I did an ok job, it's my first time captioning a video.