01
RabbitMQ as the bus between microservices
Queues absorb bursts, let each service scale on its own and keep accepted requests safe if a downstream service is down; failed messages go to a dead-letter queue for inspection.
Corporate project · Presented company-agnostic: architecture and decisions only.
Distributed platform for merchants to accept payments in any cryptocurrency
The merchant client submits a payment request; the API validates and stores it as pending, then enqueues it and acknowledges immediately.
Click a step to jump to it. Click a component for details.
A distributed payments platform that any merchant could integrate to accept payments in Bitcoin, Ethereum, Litecoin and other cryptocurrencies. Microservices on C#/.NET communicate through RabbitMQ: one receives and enqueues payment requests, another executes the payment on-chain with the user's wallet, and a third waits for confirmation and pushes the result to the client in real time through SignalR. State lives in SQL Server.
Merchants wanted to accept cryptocurrency without building blockchain integrations themselves, yet on-chain payments are slow to confirm and can fail. The platform had to accept requests reliably, execute them safely, and tell clients the outcome as soon as it was final.
01
Queues absorb bursts, let each service scale on its own and keep accepted requests safe if a downstream service is down; failed messages go to a dead-letter queue for inspection.
02
Messaging is at-least-once, so each payment carries a unique key and handlers check persisted state before acting, preventing duplicate on-chain transactions.
03
Broadcasting a transaction is quick but finality is slow and variable per chain. A dedicated watcher polls for confirmations and emits an event, so executors stay free.
04
Clients learn the outcome the moment the confirmation event arrives, with less load and lower latency than repeated status requests.
05
Payment state and its history are relational and transactional, which makes recovery, reconciliation and auditing straightforward.