Check and uncheck

It's all about checking or unchecking boxes. There's a global counter that keeps track of the total number of checked boxes. Let's see if we can beat 'onemillioncheckboxes'! Start checking

Gold-digger

Hidden through out the site there's gold! When you find gold your user gets credited and of course you want as much gold as possible! Can you be #1 on the high-score list?

WAR!

This is a mini-game with a smaller map. (8x8 checkboxes). Compete with all other visitors to either check or uncheck all boxes. Since it's a small map there's actually a possibility to finish :) Go to WAR!

Minesweeper

A classic. Play minesweeper. But checkboxes. Play minesweeper

Lighs out

A puzzle where you need to uncheck all checkboxes. Play lights out

Why?

I have been wanting to experiment with writing distributed systems for a while. Inspired by 'onemillioncheckboxes' I found it a good example to use. But to add some complexity and justify a distributed system I decided to make it a bit bigger; so this version manages 2^256 * 4096 checkboxes!

Tech-stack

Being a long-time .Net developer I've had my eyes on Orleans.Net for a while but only used it without it's cluster-capabilities. Orleans.Net is a virtual actor framework and that's a good fit to manage more data than possible. None the 2^256 pages of checkboxes actually exist until someone makes a change to them.

  • .Net 9
  • Orleans.net - cluster framework
  • Redis - Manages pub/sub
  • SignalR - Realtime communication with clients
  • MongoDB - DB used to store state
  • Angular - UI framework
Everything is deployed to a Kubernetes cluster.