The extensions to the redis challenge (and likely for others) seem to be independent of one another by design (hence, the option to remove/add them independently). However, there are opportunities to introduce challenges that only become available after completing certain extensions in sequence. We could call these “hidden unlockables.”
Some examples include:
- RDB Serialization (RDB + Replication): In the RDB extension, we parse an RDB file, while the replication extension currently requires sending an empty RDB file during the handshake as a placeholder for the master server’s state. An unlockable challenge could involve implementing actual RDB serialization, allowing the in-memory database to be converted to the RDB binary format and sent over the network instead of the placeholder.
- Transaction Broadcast (Replication + Transaction): Another possible “unlockable” is propagating transaction commands (MULTI, EXEC, DISCARD) to replicas. I am not entirely sure how Redis handles this internally (perhaps by buffering commands until EXEC is called) but implementing this could be a compelling and instructive challenge.
We could complete these challenges as bonus achievements (similar to going back to a completed game to find hidden unlockables).