Practice ยท 1 of 2
The narrow seam
Inside Solution, implement the engine contract:
1. public interface Engine { void put(String key, String value);
java.util.Optional<String> get(String key); java.util.List<String> keys();
int count(); }
2. public static class InMemory implements Engine โ ConcurrentHashMap backed;
keys() returns keys SORTED ascending (determinism is part of the contract).
3. public static class JsonlFile implements Engine โ constructor takes a
java.nio.file.Path of an append-only file; put appends the line
{"op":"put","k":"<key>","v":"<value>"}\n (UTF-8, CREATE+APPEND) then updates an
internal ConcurrentHashMap index (write-through); get/keys/count read the
index; keys() sorted ascending.
4. static Engine replay(Path file) โ a NEW JsonlFile whose state is rebuilt by
reading every line of the existing file and applying each op in order (later puts
overwrite earlier ones for the same key).
Difficulty: advanced
Back to lesson: Practice: Capstone build