This is my 9th update, and I'm pleased to share the progress I've made on the research for the log-based database implementation. As promised, I'll have a PR ready by the end of this month, and you can expect to see it in my 10th update.
Now, let's delve into Nim, a language I find quite liberating. Nim grants you the freedom to work in your own way, which sets it apart from Go, a language I appreciate for its simplicity. However, Nim's flexibility and choice can be a double-edged sword. I've previously mentioned my struggle with the language server for the vscode-text-editor, but I've found a workaround by using two separate tabs. One tab is for quick function and type lookups that the language server would usually provide. Despite these challenges, Nim has been a rewarding experience overall.
One notable drawback is the lack of documentation for certain types and functions in some libraries, likely due to the need for speedy development during the beacon implementation. Thankfully, there's a wealth of online resources to help fill in the gaps, and even ChatGPT has been a helpful source for grasping key concepts.
While I'm confident in the majority of my design decisions, there are still some specific aspects I'm uncertain about. If you're following this development and find yourself struggling to grasp certain ideas, I recommend checking out this link. Although it primarily discusses libsql, a fork of SQLite, it provides valuable insights into concepts relevant to the Write-Ahead Logging (WAL) used in this project.
As I move forward, the last hurdle (🤞) is deciphering how blocks are received within the codebase and determining the optimal approach to maintain consistency throughout the entire program.
Progress is steadily building, and I'm excited about the direction things are headed. Stay tuned for more updates!