rigami.
All insights
/// Auctions · 2026-02-18 · 8 min read

Why .NET + Azure is still the right call for high-value auctions

Node and Postgres get the blog posts. For high-value auction platforms, the boring stack is still winning — and here's why we doubled down on .NET and Azure for HipHopGrails.

Every six months, a team building an auction platform asks us the same question. "Why .NET? Why Azure? Wouldn't Node and AWS be more modern?" The question is fair. The answer hasn't changed in three years.

When you're auctioning a $40,000 Travis Scott McLaren or a $2M Basquiat print run, the stack you pick is doing two jobs. One: it has to be fast enough that the last 30 seconds of a bid war don't feel like dial-up. Two: it has to be auditable enough that when a $40k bid gets disputed, you can prove to a court what happened down to the millisecond. "Modern" is the wrong axis. "Survives an audit" is the right one.

The bidding engine is the product

Most auction platforms are CRUD apps with a countdown on top. That works fine for an eBay knock-off. It doesn't work for high-value drops where every bid is a financial event with regulatory weight. The bidding engine is the product, and the bidding engine needs four things: strict ordering, sub-100ms broadcast, server-authoritative state, and an audit log that survives subpoena.

ASP.NET Core gets you three of those out of the box. SignalR — Microsoft's WebSocket layer — gets you the fourth. Azure SignalR Service handles the scale-out so a 10,000-person live auction doesn't melt the bidding server. We tried the Node/Socket.IO equivalent on an earlier project. It worked. It also required us to build, in-house, three things that .NET ships with: request-scoped DI, structured logging with W3C trace context, and a typed actor model for the auction state machine.

Azure is not AWS-but-worse

AWS is genuinely better at some things — managed Postgres, ML services, the breadth of the marketplace. Azure is genuinely better at a few specific things that matter for an auction platform:

  • Azure SignalR Service — the only managed WebSocket layer that handles 100k+ concurrent connections without you operating it yourself.
  • Azure Front Door + WAF — bot protection, geo-fencing and rate limiting in one product, configured in minutes instead of weeks.
  • Azure AD B2C — when your auction needs KYC-bound identities and per-jurisdiction identity providers, B2C is years ahead of Cognito.
  • Azure SQL with audit + always-encrypted columns — the audit trail you'd otherwise hand-roll comes built in.
  • Closer-than-people-expect parity on price for steady-state workloads, and significantly cheaper egress.

Are we Azure maximalists? No. We've shipped on AWS for plenty of clients. But for an auction platform handling regulated, high-value transactions in the US tribal and state-level markets, Azure's identity, audit and compliance posture is the easier path.

The .NET ecosystem caught up — and then quietly pulled ahead

The story "C# is enterprise, Node is modern" stopped being true around 2022. EF Core matches Prisma feature-for-feature. Minimal APIs are as terse as Express. .NET 8 is the fastest mainstream web runtime on the TechEmpower benchmarks. The tooling — Rider, source generators, hot reload, native AOT — is genuinely state of the art. The hiring story is the only place where the perception gap survives, and even that's recovering as bootcamp grads notice the salary differential.

Where we'd not pick this stack

We're not religious. There are projects where we reach for Node, or Go, or Python first. Real-time AI workloads that need to call OpenAI on every request — Node is fine. Internal tools where developer velocity matters more than long-term operability — Next.js full-stack. Highly numeric or ML-adjacent work — Python. Edge-deployed APIs — Go or Rust.

But for a regulated platform handling money, state and high-value events — auctions, gaming, fintech rails — .NET on Azure remains the call we make first, the one we defend in architecture reviews, and the one our clients are quietly relieved we picked once the first audit lands.

The takeaway

Stack debates are usually proxy wars for something else: hiring stories, founder backgrounds, what got someone promoted at their last company. For auction work, the right framing is "what stack still works when the room is full, the lawyer is watching and the regulator is mid-audit?" .NET and Azure pass that test. That's why HipHopGrails runs on them, and why we'd build the next one the same way.

Want this kind of work on your roadmap?
Work with us