Switching to Go
Migrating a payment processing API from Node.js to Go -- what changed, what improved, and what we gave up.
nodejs
all tags →Migrating a payment processing API from Node.js to Go -- what changed, what improved, and what we gave up.
What a codebase looks like when two people build everything -- 350 commits, and a todo list with two items.
Why a graph database was the only sane choice for a social feed where the interesting question isn't what your friends posted, but what your friends' friends are doing this Saturday.
Adding businesses to a social platform built on Neo4j -- and realizing both sides of the marketplace use the same graph patterns.
Two people, one Express app, and eight middleware functions between the request and the response.
Running a custom Node.js blog engine on a Raspberry Pi at home -- from a 45-day wait and a dead board to DuckDNS, ISP port blocking, and the first external request.
Route handlers don't need to be nested callbacks -- Express middleware chains turn them into a flat, readable sequence.
A bash deploy script and a Node.js process monitor -- SSH, pull, touch a file, the cluster reloads. No CI, no dashboard. The terminal.
A composable predicate function for sorting arrays of objects by multiple fields -- with reverse, primers, and short-circuit evaluation.
Upstart, clustering, zero-downtime deploys, heartbeat monitoring, and an embedded REPL -- what it takes to keep Node.js running in production in 2013.
Our team's Node.js conventions -- error-first callbacks, early returns, callback alignment, and the formatting rules we drilled into every new developer.
Ditching WordPress for a custom Node.js blog engine powered by libgit2 -- git as the content store, markdown as the writing format, npm for everything else.
Replacing an e-commerce frontend without turning off the old one -- carving over layer by layer while the store takes orders.
A basement, a barcode scanner, and the moment the dispatch desk stopped waiting.
In-memory rate limiting as Express middleware. No Redis, no external service. Fifty lines, one file.
The Node.js MySQL driver doesn't pool connections. Under load, you run out. Fifty lines with generic-pool fixes it.
Loading every product, category, and brand URL into a Redis hash at startup, and a middleware that rewrites requests before Express sees them.
Building catalog search with flattened MongoDB documents and application-side scoring when the proper tools don't exist yet.