HNHacker News
TopNewBestAskShowJobs

alzhi7

21 karma · joined June 6, 2025

submissionscomments
alzhi7··on [dead]
Having a lot of projects, each has a lot of microservices and dbs, tired of executing the same queries, switching between dbs (yeah, not all clusters are available in monitoring panels).
alzhi7··on [dead]
Writing business logic can be interesting. Writing yet another REST wrapper around a table is not. Never. Ever.
alzhi7··on Finding Structurally Duplicate Go Functions with AST Hashing
godedup is a small Go CLI tool that finds structurally duplicate functions in Go code. It does not compare raw text. It does not care if variable names changed. It does not care if string literals changed. It looks at the shape of the code.
alzhi7··on [dead]
On the day of a real disaster, PostgreSQL will not read your beautiful logs. It will simply ask for the next WAL file.
alzhi7··on Web UI in Go? Nothing Can Stop Me
What if I attach the simplest possible web panel to the application?
alzhi7··on I dug into the Postgres sources to write my own WAL receiver
I fully understand you. During my "compiler-writing" experience, I've realized how easy it is to spend weeks making things that at first glance seem to be the easiest in the world (like parsing C89 declarator: "int f(void);"), and to say exactly what the "f(void)" is :)
alzhi7··on I dug into the Postgres sources to write my own WAL receiver
Thanks for the feedback!

Yes, I know about this tool, it's great. I watched videos about how it was developed, what difficulties there were in achieving delta backups, and how the developers also spent a ton of time studying the PostgreSQL source code. And I studied the Wal-G source code myself. I just never had to use it at work, since I was used to pgBackRest and, a bit later, to Barman. Wal-G focuses on cloud and universality (i.e., it's not only used for PG, but has a unified interface for many different storage systems).

Initially, I didn't even have the idea of making a complete, reliable tool. Over time, I started striving toward exactly that. When there was an available hypervisor at work, I set up k8s there and ran my receiver for several dev databases, just to test its operation 24/7, setting aggressive config parameters (frequent compression, unloading, cleanup, frequent backups, etc.). At the same time, I was choosing not small databases, but quite real production ones, with various nightly integrations for data population (external APIs, Airflow, and all that), blobs/tablespaces.

And of course I read your articles, and watched a lot of videos

alzhi7··on Patch-based, environment-aware K8s deploys with plain YAML and zero templating
Simple: No templates, DSLs, or logic in YAML, zero magic.

Predictable: No string substitutions or regex hacks.

Safe: Only native Kubernetes YAML manifests — readable, valid, untouched.

Layered: Patch logic is externalized and explicit via JSON Patch (RFC 6902).

Declarative: Cross-environment deployment with predictable, understandable changes.

alzhi7··on [dead]
A lightweight kubectl plugin that brings all-or-nothing semantics to Kubernetes deployments.

It works like kubectl apply -f, but ensures that if any manifest fails to apply or doesn't reach the desired state, everything is rolled back to its original state.

Useful for complex, multi-resource deployments where partial updates can break things.

alzhi7··on RelImpact v0.0.3. Release Impact Analyzer for Go – Changelog for API and More
Highlights in v0.0.3 include: bug fixes and cleanup for more stable diffs, enhanced pretty-printing with collapsible change sections, updated documentation and README examples.
alzhi7··on Released kubectl-apidocs v1.0.14 – a CLI plugin to explore Kubernetes API
kubectl-apidocs is a lightweight Kubernetes CLI plugin that helps you explore Kubernetes API resources interactively in your terminal.

It provides a tree-based browser of all API groups, versions, resource kinds, and fields — a fast way to navigate both built-in and custom resources (CRDs).

Highlights in v1.0.14: improved search experience, keybindings for interactive usage.

Project page: https://github.com/hashmap-kz/kubectl-apidocs Issues, feedback, PRs welcome!

alzhi7··on Pgrwl v1.0.16 Adds Base Backup Support for PostgreSQL WAL Archiving
PGRWL is a cloud-native PostgreSQL write-ahead log (WAL) receiver written in Go. It is designed as a container-friendly alternative to pg_receivewal. It supports streaming replication, encryption, compression, retention, and remote storage (S3, SFTP).

The latest release, v1.0.16, introduces a built-in base backup feature, enabling users to perform full backups alongside continuous WAL archiving. This enhancement simplifies disaster recovery and point-in-time recovery (PITR) workflows by integrating base backups directly into the tool.

Additional improvements in this release include: implementation of a restore command for base backups, streaming component for efficient data transfer, bug fixes related to base backup directories and labeling, updated documentation. For more details, visit the release page: https://github.com/hashmap-kz/pgrwl/releases/tag/v1.0.16