Skip to main content
2023
31

Ent-ORM

Ent is an open-source Go ORM framework from Meta, built around a schema-first design and code generation. This post walks through its design philosophy, strengths and weaknesses, its history, and how it compares to GORM, XORM, and SQLBoiler.

32

Kratos

Kratos is a Go microservice framework open-sourced by Bilibili. This post covers its design strengths and core features, and compares it with Spring Cloud, Dubbo, Go-Micro, and other common frameworks.

33

Neo4j: A Graph Database

Neo4j is a high-performance graph database built on the graph data model, excelling at relationship-heavy workloads. This post covers its licensing, data structure, and main features, plus caveats to weigh when evaluating it.

34

A Taxonomy of Databases

Classifying databases along the dimensions of data model, processing style, deployment, storage medium, and access pattern, with typical use cases for each category.

35

Preventing Duplicate Form Submissions

The server generates a one-time token, stores it in Redis, sends it down with the form, and deletes it immediately after validation. Notes on how this mechanism defends against duplicate submissions and CSRF, how to implement it, and the security caveats.

36

How Docker Works

Docker study notes: how the Daemon and Client interact, how containers are built on Namespaces/Cgroups/union file systems, and the underlying storage mechanics of image layers and data volumes.

37

Flink CDC Components

An introduction to Flink CDC and its built-in components: starting from how change-log capture works, then covering the Source, Debezium Connector, Sink, and other core modules, plus common caveats in practice.

38

MySQL Rounds Your Timestamps

MySQL's DATETIME defaults to second precision, so milliseconds coming from Java get rounded — sometimes adding a whole second out of thin air. Here's why it happens, plus two fixes: DATETIME(fsp) and truncation on the Java side.

39

Data Lakes and Iceberg

Sorting out the differences between data lakes and data warehouses, and introducing Apache Iceberg, an open-source table format: versioning, metadata management, partitioning, and snapshots, plus some notes for technology selection.

40

Data Structures: The Stack

A stack is a last-in-first-out (LIFO) data structure that only allows insertion and deletion at the top, and can be implemented with an array or a linked list. This post walks through its basic operations, complexity, and its uses in function calls, expression evaluation, compilers, and operating systems.