Jiang WangFull-stack Engineer

03 · 2022

NFT Digital Collectibles Platform

A platform for digital collectibles and auctions

CollectiblesHigh concurrencyTrading

Overview

A platform for collecting and auctioning digital art: digital paintings, 3D works and NFTs, with uniqueness guaranteed on-chain.

Capabilities

01

Trading and auctions

Issuance, collecting and auctions run on one platform, with the trading path designed for short bursts of high concurrency.

02

Concurrency control

Mutexes, semaphores and thread pools control resource contention on the trading path.

03

Async messaging

Components communicate through RabbitMQ for peak shaving and decoupling.

04

Caching and scaling

Redis caches hot data; distributed deployment and load balancing allow scaling by node.

Architecture

01

Stack

Go microservices with Gin/gRPC; MySQL, Redis and Kafka; Nginx reverse proxy; deployment across multiple servers.

02

Concurrency model

The trading path is split around contention points, using mutexes, semaphores and goroutine pools; load tests locate bottlenecks before tuning.

03

Messaging and peak shaving

Kafka handles orders and trading events asynchronously, smoothing peaks and decoupling services.

04

Cache

Redis caches hot data and holds distributed locks to reduce database pressure.

05

Deployment and security

Multiple servers behind Nginx load balancing scale horizontally; servers follow a hardened security baseline.

Product value

Collectible launches and auctions draw concentrated traffic in a short window; if the trading path congests, launches and auctions stall. The platform uses concurrency control, message queues and caching to carry peak traffic, and scales by node so launches and auctions proceed as planned.