SSBC grant proposal - Benchmark CI system
Performance of ssb is a key user experience problem. Also, performance determines how weak a device it can effectively run on, which is the same as saying poorer people can afford a suitable device. Theirfore, performance is essential to network growth.
In the past, we have not always kept track of performance and had some regressions. We've normally heard about problems from users complaining it's taken too long to load! This is not good enough.
This proposal is to build a benchmark CI system that will run every time a ssb-* module is updated. This means we'll know what the performance is at any time, and whether changes proposed improved something or not!
motivation
This is also intended to make working on the systems/backend side of ssb more accessible. Improving benchmark perf is a fun game that also involves learning how it all works. Currently, we have lots of people building front end applications on ssb, but I'm still doing most of the dev on the systems side. That is a point of centralization, we need to decentralize backend dev!
Boxes ticked: growth, learning, income, avoiding burnout
who will work on this
myself and @arj are gonna collaborate on this!
I've already started on some benchmarks bench-ssb and have already learnt a lot! We'll still need more benchmarks than this, and to display graphs etc, for the each run.
We've also discussed driving this through git-ssb, and npm-ssb!
@arj has full time work, so we'd do this part time over a 2 or three month period.