Skip to main content
← All case studies
Pricing EngineSaaS·CDMon

Intelligent Domain Pricing Microservices

A Go microservices platform computing registrar domain prices across thousands of TLDs—tiered fees, promotional markups, and multi-currency conversion at sub-100ms latency.

GoGinMariaDBMongoDBDockerZipkinSpring Cloud ConfigEureka

The Problem

A domain registrar prices thousands of TLDs sourced from different registries—Verisign, DENIC, and others—each with its own cost structure and update cadence. On top of raw costs sit volume-based discount tiers, promotional campaigns, and multi-currency display with foreign exchange exposure on every quote.

The existing process could not keep up: pricing updates from registry CSV files crawled through a slow manual refresh cycle, campaign changes required code deployments, and stale prices created inventory mismatches between what customers saw and what domains actually cost.

What We Built

We built a three-microservice platform with clean boundaries: api-domains holds registry cost prices in MariaDB, api-pricing computes customer prices—tiered volume discounts across 1-5, 6-20, 21-60, and 60+ domain brackets, promotional markups from MongoDB, and currency conversion with a configurable exchange margin and customer-friendly rounding—and api-registry-connector checks availability. A circuit breaker between pricing and domains prevents cascading failures, with a 5000ms timeout and failure-count tripping.

Hot pricing paths serve from a 1-minute TTL cache for sub-100ms responses, Zipkin distributed tracing captures end-to-end request flows with sub-span annotations, and the MongoDB schema for markups and fees means campaign pricing changes deploy as data edits—no code release required.

Tiered fee calculation engine

Volume brackets, promotional markups, and per-TLD registry costs combine into final prices through one calculation engine instead of scattered spreadsheet logic.

Campaign pricing without deployments

Markups and fees live as flexible MongoDB documents, so marketing launches and adjusts campaigns by changing data, not by waiting on a release.

Multi-currency with forex protection

Currency conversion applies a configurable exchange margin and rounds to customer-friendly increments, protecting the registrar from rate movement between quote and settlement.

Resilient low-latency serving

TTL caching keeps hot lookups sub-100ms, circuit breakers isolate service failures, and Zipkin tracing makes every request flow observable.

How It Works in Practice

A reseller customer pricing a bulk purchase of 45 domains across a dozen TLDs during an active promotion.

  1. 1

    Quote in one call

    The pricing API pulls registry costs from api-domains, applies the 21-60 volume bracket, layers the active promotional markup, and converts to the customer’s currency.

  2. 2

    Serve from cache

    Hot TLD prices return from the 1-minute TTL cache in well under 100ms, keeping the storefront responsive under load.

  3. 3

    Survive a hiccup

    When api-domains slows, the circuit breaker trips rather than letting checkout requests pile up—and Zipkin traces show exactly where the latency lives.

  4. 4

    Adjust the campaign

    Marketing tunes the promotion mid-day with a MongoDB markup edit; new prices flow to customers within the cache window, with no deployment.

Engineering Approach

Boundaries along rates of change

Cost prices, pricing logic, and availability change at different speeds and for different reasons—separating them into services let each evolve without destabilizing the others.

Configuration where agility matters

Putting campaign economics in a flexible document store rather than code moved pricing agility from engineering sprints to marketing decisions.

Observability from day one

Distributed tracing across all services with sub-span annotations made performance work and incident diagnosis evidence-based rather than guesswork.

Have a similar problem?

Tell us what you're working on and we'll tell you honestly whether we can help.

Copyright © 2026 Datum Brain

facebookinstagramlinkedintwitteryoutube