Sarthak Makhija
Sarthak Makhija Databases & Storage Systems
Sarthak Makhija
Sarthak Makhija Databases & Storage Systems
Live Weekend Course

Building a Transactional, LSM-Backed Storage Engine from First Principles

A hands-on, live course on building transactional storage engines, concurrency models, and LSM & B+Tree structural internals

Duration

August 15-16 & August 22-23, 2026 (Weekends)

Timings

6:00 PM to 9:00 PM IST

The Pitch

Most backend developers write application logic on top of black-box databases. In this live weekend course, we pull back the curtain and write the actual systems software that powers modern storage giants like RocksDB, Pebble and BadgerDB.

Key-value storage engines form the foundational storage layer of almost all modern databases. CockroachDB relies on Pebble, Dgraph is built on Badger, and etcd is backed by Bbolt. By understanding how a concurrent, transactional key-value store operates under the hood, you master the storage backbone of the systems you use every day. Beyond LSM internals, you also gain a deep understanding of how B+Tree indexes work, and why particular database engines are optimized for heavy write workloads while others target read-heavy access patterns.

We will write an embedded, multi-versioned key-value storage engine from scratch, moving step-by-step through the classic components of an LSM-Tree architecture:

The Memory Layer

Coding a multi-versioned Skiplist Memtable that natively supports timestamp-ordered key versions.

The Durability Layer

Implementing an append-only Write-Ahead Log (WAL) with strict fsync batching and state recovery.

The Disk Layer

Designing block-aligned immutable SSTables, parsing encoding offsets, and writing Bloom Filters to eliminate unnecessary disk seeks.

The Transaction Layer

Building Serializable Snapshot Isolation (SSI) to detect concurrent read-write conflicts and prevent data anomalies without global locks.

What this course is NOT: We will not focus on database administration, cloud tuning, or SQL querying. This is a code-first engineering deep dive into the software architecture of storage engines.

Why should you join?

Systems over CRUD

Escape the loop of building APIs and writing SQL queries. Level up by coding the systems software that sits underneath the application layer.

Purely Hands-on

Write the code yourself. Build core components of the engine from scratch to a complete, thread-safe transactional store with tests.

Design Interview Edge

Understand storage engine trade-offs at an operating system, file system, and hardware level. Confidently explain write amplification, compaction, and transaction isolation levels in Staff/Principal interviews.

L&D Reimbursement Ready

This course is priced to fit comfortably within the standard corporate training/L&D budget of most tech companies. You'll receive a receipt for easy reimbursement.

From First-Principles to Production-Scale Optimizations

Building a storage engine from first principles is the ultimate way to master systems programming, but matching the scale of industry giants requires seeing how these designs are optimized for production workloads.

Throughout our live sessions, we will build a fully transactional, concurrent storage engine from scratch, and then bridge these designs to the actual production repositories of boltdb/bolt, CockroachDB's pebble, and Dgraph's badger. You will analyze how engineers solve disk page layouts, lock partitioning, block-aligned commit pipelining, and background compaction strategies under heavy write load.

Curriculum

01
Week 1 - Session 1

Foundations & B+Tree Architecture

  • Concept Introduction to storage engines and system goals
  • Concept Introduction to block storage devices and random/sequential IO
  • Concept Understanding file organization and standard kernel IO caches
  • Concept Understanding logical in-memory structures vs physical block layouts
  • Concept Understanding Binary Search Trees (BST) and memory heights
  • Concept Analyzing BST limits for disk-based persistence
  • Concept Introduction to B+Tree node layouts and design trade-offs
  • Concept Demystifying how database indexes work
  • Code Study Production Code Study: Deconstructing boltdb/bolt to see how a production-grade B+Tree engine structures its physical on-disk pages.
System Design: B+Tree Node Layout
02
Week 1 - Session 2

LSM Introduction (Hands-on)

Get hands-on by building the core write path of an LSM engine. We will code a thread-safe Memtable and implement an append-only Write-Ahead Log (WAL) to guarantee crash durability.

  • Concept Introduction to LSM-Tree architecture and component interactions
  • Build Implementing a multi-versioned Memtable and its iterator
  • Build Implementing an append-only Write-Ahead Log (WAL)
  • Build Implementing crash-resilient state recovery from WAL
  • Concept Understanding WAL rotation and implementation patterns
  • Code Study Production Code Study: Auditing CockroachDB's pebble or Dgraph's badger repository to see how a production-grade engine structures its concurrent Memtable and commit pipeline.
Prototypes and Demonstrations: 3 (SkipList Memtable, Memtable Iterator, Append-only WAL with Recovery)
System Design: WAL + In-Memory Storage
03
Week 2 - Session 3

SSTables & Bloom Filters (Hands-on)

Move data from memory to disk by designing SSTables and optimize reads using Bloom Filters. This session focuses on minimizing read amplification and disk seeks.

  • Concept Understanding block-aligned immutable SSTable structure
  • Build Implementing key-value data encoding and endianness
  • Build Implementing block-level binary search
  • Build Implementing block-aligned SSTables and block iterators
  • Concept Understanding Bloom Filter theory
  • Build Implementing a basic, naive Bloom Filter
  • Build Implementing a production-grade in-RAM Bloom Filter
  • Build Integrating Bloom Filters into the SSTable read path
  • Code Study Production Code Study: Deconstructing Dgraph's badger engine code to look at real-world block-aligned table builders and RAM-to-disk serialization.
Prototypes and Demonstrations: 3 (SSTable Encoder, SSTable Index Search, Optimized Bloom Filter)
System Design: SSTable Design
04
Week 2 - Session 4

Transactions & Compaction (Hands-on)

Implement transactions with Serializable Snapshot Isolation (SSI) and build a Leveled Compaction engine to keep the storage engine optimized. This session completes the transactional LSM engine.

  • Concept Understanding ACID guarantees in storage design
  • Build Implementing durability and recovery at the transaction layer
  • Concept Understanding SQL isolation levels and write anomalies
  • Concept Understanding Serializable Snapshot Isolation (SSI) theory
  • Build Implementing a singular update queue for safe concurrency
  • Build Implementing Serializable Snapshot Isolation
  • Build Implementing transactional iterators with multi-version reads
  • Concept Introduction to Compaction and delete tombstone management
  • Concept Understanding Leveled and Size-Tiered compaction models
  • Build Implementing an automated Leveled Compaction executor
  • Code Study Production Code Study: Analyzing transaction conflict detection and background compaction in Dgraph's badger.
Prototypes and Demonstrations: 4 (ACID Transaction Manager, SSI Conflict Detector, Transactional Iterator, Compaction Executor)
System Design: Transactional, LSM-Backed Storage Engine

Program Prerequisites

  • Go 1.24 (or newer) installed on your machine.
  • An IDE/Editor of your choice (e.g., GoLand, VS Code) configured for Go.
  • Intermediate proficiency in Go. Familiarity with pointers, goroutines, and basic IO interfaces is helpful.
  • Clear understanding of fundamental data structures (arrays, hash maps, binary trees, linked lists).

Transactional Storage Engine

August 15-16 & August 22-23, 2026

Time Schedule

6:00 PM to 9:00 PM IST

During the live sessions, you will

  • Learn the intuition behind designing, building, and implementing storage engines
  • Brainstorm, interact, and learn from your peers and their experiences
  • Build a concurrent, transactional storage engine and understand its operational challenges
  • Contrast LSM-Trees and B+Trees to understand structural internals and read vs write performance trade-offs

You'll Get

  • Live classes on weekends
  • Live interactive sessions via Google Meet
  • 6 Months Access to the course recordings
  • Doubt resolution during and post live sessions
  • First-weekend money-back guarantee: full refund within 48 hours of starting, if the course is not for you
  • Instruction and communication strictly in English
Enroll Now →

Frequently Asked Questions

Is this course live or pre-recorded?

Every session is live. I will personally facilitate and teach all modules online over Google Meet, including hands-on coding walkthroughs and interactive Q&A.

Will there be a class every day?

No, classes run only on weekends (Saturdays and Sundays). Sessions will start at the times listed above, with an extra 30-40 minutes added if we need more time to complete coding exercises or handle debugging.

Is this course right for me?

If you're a backend developer looking to step away from traditional database clients and understand low-level disk serialization, transactional isolation layers, and storage models, this course is designed for you. Please check the detailed curriculum outline above to see if it covers your learning goals.

Will I get a receipt for my payment?

Yes. A standard payment receipt with all necessary billing details will be issued to you automatically. If your employer provides an L&D budget for professional training, this document will serve as valid proof of payment for reimbursement.

When will I receive my receipt?

Your receipt is sent via email immediately after a successful transaction. Please note that if you choose to request a refund during the first weekend, your receipt will be voided.

Will there be 1:1 mentorship sessions?

No. While the course features live chat, hands-on debugging, and interactive Q&A during class hours, it does not include individual 1-on-1 mentorship sessions.

What if I miss a live session?

All live sessions are recorded. You will receive 6 months access to the recordings within 24 hours of each session, along with complete code repositories for each stage of the engine.

Can I write the engine in a language other than Go?

Yes. While the instructor walkthroughs, code templates, and helper utilities are written in Go, the architectural principles, SSTable layouts, and SSI transactional isolation mechanics apply directly to Rust, C++, Java, or any other systems language.

How interactive is the course?

To ensure high interactivity and personal attention, we cap the course at ~30 developers. There will be open Q&A sessions, active peer discussions, and dedicated doubt support.

What is the refund policy?

We offer a first-weekend money-back guarantee. If you decide the course is not a good fit for you after completing the first weekend, request a refund within 48 hours of starting, and we will process a 100% refund immediately. Please review our full Refund Policy for terms and details.

How can I connect with you if I have more questions?

If you have questions about custom schedules, team enrollments, or any other topic, please reach out to us directly through our Contact Us page.

How will I receive the session details and calendar invites?

All calendar invites, meeting details, and course materials will be sent to your registered email address from sarthak.makhija@tech-lessons.in. To ensure you don't miss any session details, please add this email address to your contacts or mark it as "Not Spam" if any emails end up in your Spam or Promotions folder.

Can you provide an invoice for reimbursement?

Yes, we can provide invoices on demand. Please note that these invoices are non-GST based, and the "Billing To" details will match the email address provided during registration.