Faru.dev perspectives

Perspectives

Technical perspectives on software architecture, product strategy and reliable delivery.

Content map

4 Sections

120 posts shown

Architecture · PLAYBOOK

Building a 2PC across the PSP, the order, and finance is a trap. Saga plus reconciliation is the real answer this eight-part arc has been building toward.

Chapter trail

Distributed Payment Engine

Part 16 / 22

  1. Part 1 Why Payment Systems Are Distributed Systems
  2. Part 2 Payment State Machine Design: Checkout vs. Payment Lifecycles
  3. Part 3 Why Payment Capture Is Easy but Finalization Is Hard
  4. Part 4 Immutable Payment Snapshot Design: Freezing the Cart at Intent Time
  5. Part 5 Idempotency Beyond API (Application Programming Interface) Requests: A Layered Defense
  6. Part 6 Webhook Reliability in Payment Systems
  7. Part 7 The Outbox/Inbox Pattern in Payment Systems
  8. Part 8 Payment Evidence vs. Payment State
  9. Part 9 Provider Abstraction Without Leaking SDKs
  10. Part 10 Semantic Events Over Raw Provider Payloads
  11. Part 11 Payment Failure Taxonomy
  12. Part 12 Retry Algorithms for Payment Workers
  13. Part 13 DB-Backed Jobs With Leases
  14. Part 14 Building a Payment Reconciliation Worker
  15. Part 15 Healing Paid-But-Unordered Payments
  16. Part 16 Why Eventual Consistency Beats Distributed Transactions
  17. Part 17 Optimistic Concurrency Under Webhooks
  18. Part 18 Payment Observability and Correlation
  19. Part 19 Payment Recovery Pipeline and Runbooks
  20. Part 20 Effectively-Once Processing in Payments
  21. Part 21 Designing a Production Payment Engine
  22. Part 22 What Fintech Companies Actually Hire For
Architecture · PLAYBOOK

Idempotency isn't one header. It's a defense stack that has to be built separately across five layers, from the API key down to the step marker.

Chapter trail

Distributed Payment Engine

Part 5 / 22

  1. Part 1 Why Payment Systems Are Distributed Systems
  2. Part 2 Payment State Machine Design: Checkout vs. Payment Lifecycles
  3. Part 3 Why Payment Capture Is Easy but Finalization Is Hard
  4. Part 4 Immutable Payment Snapshot Design: Freezing the Cart at Intent Time
  5. Part 5 Idempotency Beyond API (Application Programming Interface) Requests: A Layered Defense
  6. Part 6 Webhook Reliability in Payment Systems
  7. Part 7 The Outbox/Inbox Pattern in Payment Systems
  8. Part 8 Payment Evidence vs. Payment State
  9. Part 9 Provider Abstraction Without Leaking SDKs
  10. Part 10 Semantic Events Over Raw Provider Payloads
  11. Part 11 Payment Failure Taxonomy
  12. Part 12 Retry Algorithms for Payment Workers
  13. Part 13 DB-Backed Jobs With Leases
  14. Part 14 Building a Payment Reconciliation Worker
  15. Part 15 Healing Paid-But-Unordered Payments
  16. Part 16 Why Eventual Consistency Beats Distributed Transactions
  17. Part 17 Optimistic Concurrency Under Webhooks
  18. Part 18 Payment Observability and Correlation
  19. Part 19 Payment Recovery Pipeline and Runbooks
  20. Part 20 Effectively-Once Processing in Payments
  21. Part 21 Designing a Production Payment Engine
  22. Part 22 What Fintech Companies Actually Hire For
Architecture · PLAYBOOK

Re-reading the live basket during payment leaves amount and currency undecided. Without a snapshot frozen at intent time, finalization can't be trusted.

Chapter trail

Distributed Payment Engine

Part 4 / 22

  1. Part 1 Why Payment Systems Are Distributed Systems
  2. Part 2 Payment State Machine Design: Checkout vs. Payment Lifecycles
  3. Part 3 Why Payment Capture Is Easy but Finalization Is Hard
  4. Part 4 Immutable Payment Snapshot Design: Freezing the Cart at Intent Time
  5. Part 5 Idempotency Beyond API (Application Programming Interface) Requests: A Layered Defense
  6. Part 6 Webhook Reliability in Payment Systems
  7. Part 7 The Outbox/Inbox Pattern in Payment Systems
  8. Part 8 Payment Evidence vs. Payment State
  9. Part 9 Provider Abstraction Without Leaking SDKs
  10. Part 10 Semantic Events Over Raw Provider Payloads
  11. Part 11 Payment Failure Taxonomy
  12. Part 12 Retry Algorithms for Payment Workers
  13. Part 13 DB-Backed Jobs With Leases
  14. Part 14 Building a Payment Reconciliation Worker
  15. Part 15 Healing Paid-But-Unordered Payments
  16. Part 16 Why Eventual Consistency Beats Distributed Transactions
  17. Part 17 Optimistic Concurrency Under Webhooks
  18. Part 18 Payment Observability and Correlation
  19. Part 19 Payment Recovery Pipeline and Runbooks
  20. Part 20 Effectively-Once Processing in Payments
  21. Part 21 Designing a Production Payment Engine
  22. Part 22 What Fintech Companies Actually Hire For
Architecture · PLAYBOOK

Measure user-centric performance with lab and field data, Core Web Vitals (LCP, INP, CLS), RUM, CrUX, budgets, and continuous monitoring—so metrics drive…

Chapter trail

Web Performance Engineering in the Age of AI

Part 2 / 13

  1. Part 1 Why Performance Is User Experience
  2. Part 2 Measuring What Matters: Essential Metrics for User-Centric Performance
Architecture · PLAYBOOK

A technical guide to the inner flow of a Vertical Slice: request, validation, handler, aggregate, outbox, projection, idempotency, performance, tests, and…

Chapter trail

Vertical Slice — Feature-First Engineering

Part 2 / 4

  1. Part 1 From Layers to Features: Why Did Vertical Slice Emerge?
  2. Part 2 How Does a Vertical Slice Work from the Inside?
Architecture · PLAYBOOK

Why does layered architecture slow change as a system grows? An architectural guide to Vertical Slice as a decision about feature ownership, behaviour…

Chapter trail

Vertical Slice — Feature-First Engineering

Part 1 / 4

  1. Part 1 From Layers to Features: Why Did Vertical Slice Emerge?
  2. Part 2 How Does a Vertical Slice Work from the Inside?
DDD- The Language of Software Part 2/4
Architecture · PLAYBOOK

How do DDD tactical patterns work? Explore Value Objects, Entities, Aggregates, Domain Services, Application Services, and Repository boundaries through a…

DDD- The Language of Software Part 3/4
Architecture · PLAYBOOK

How does DDD scale in large systems? A decision guide to Bounded Contexts, Context Mapping, Conway's Law, modular monoliths, microservice boundaries, and…

Architecture · PLAYBOOK

Hashmasks-style NFT-gated claims: ~10e18/day, INITIAL_ALLOTMENT, 10-year emissionEnd — plus open mint surface and abuse scenarios.

Chapter trail

Bare Crypto Solidity Marketplace Protocol

Part 5 / 5

  1. Part 1 Remix + OpenZeppelin Delivery Without Hardhat
  2. Part 2 BareNFT: Roles, Pausable, and Per-Token URI
  3. Part 3 BareNFTReserve: Escrow, RandomBuy, and Weak RNG
  4. Part 4 BareNFTAuction: Claim, Refund, and Emergency Powers
  5. Part 5 BareToken: NFT (Non-Fungible Token)-Gated Emissions and Abuse
Architecture · PLAYBOOK

English auction flows: bid, claim, cancel, below-reserve refunds, and owner emergency transferNft/transferFunds trade-offs.

Chapter trail

Bare Crypto Solidity Marketplace Protocol

Part 4 / 5

  1. Part 1 Remix + OpenZeppelin Delivery Without Hardhat
  2. Part 2 BareNFT: Roles, Pausable, and Per-Token URI
  3. Part 3 BareNFTReserve: Escrow, RandomBuy, and Weak RNG
  4. Part 4 BareNFTAuction: Claim, Refund, and Emergency Powers
  5. Part 5 BareToken: NFT (Non-Fungible Token)-Gated Emissions and Abuse
Architecture · PLAYBOOK

Owner-only createNewListing, buy, and randomBuy using keccak256(revealNonce, block.difficulty, msg.sender) % 3 — weak RNG, owner-operated marketplace ADR…

Chapter trail

Bare Crypto Solidity Marketplace Protocol

Part 3 / 5

  1. Part 1 Remix + OpenZeppelin Delivery Without Hardhat
  2. Part 2 BareNFT: Roles, Pausable, and Per-Token URI
  3. Part 3 BareNFTReserve: Escrow, RandomBuy, and Weak RNG
  4. Part 4 BareNFTAuction: Claim, Refund, and Emergency Powers
  5. Part 5 BareToken: NFT (Non-Fungible Token)-Gated Emissions and Abuse
Architecture · PLAYBOOK

BareNFT combines ERC721 Enumerable/Burnable/Pausable with AccessControl and role-gated mint(to, id, uri). Trade-offs of per-token URI and pause.

Chapter trail

Bare Crypto Solidity Marketplace Protocol

Part 2 / 5

  1. Part 1 Remix + OpenZeppelin Delivery Without Hardhat
  2. Part 2 BareNFT: Roles, Pausable, and Per-Token URI
  3. Part 3 BareNFTReserve: Escrow, RandomBuy, and Weak RNG
  4. Part 4 BareNFTAuction: Claim, Refund, and Emergency Powers
  5. Part 5 BareToken: NFT (Non-Fungible Token)-Gated Emissions and Abuse
Architecture · PLAYBOOK

How the Bare Crypto protocol compiled and deployed in Remix IDE with OpenZeppelin v4.1 GitHub imports — no Hardhat/Foundry — and which ADR trade-offs…

Chapter trail

Bare Crypto Solidity Marketplace Protocol

Part 1 / 5

  1. Part 1 Remix + OpenZeppelin Delivery Without Hardhat
  2. Part 2 BareNFT: Roles, Pausable, and Per-Token URI
  3. Part 3 BareNFTReserve: Escrow, RandomBuy, and Weak RNG
  4. Part 4 BareNFTAuction: Claim, Refund, and Emergency Powers
  5. Part 5 BareToken: NFT (Non-Fungible Token)-Gated Emissions and Abuse
Architecture · PLAYBOOK

From MetaMask-only to Web3Modal + WalletConnect + Coinbase WalletLink; harden chainId, gas, and addresses.

Chapter trail

NFT Collection Mint & Mainnet Hardening

Part 4 / 4

  1. Part 1 Collection Landing and WIP Whitelist Funnel
  2. Part 2 IPFS (InterPlanetary File System) Metadata, Mint, and Multiple Mint
  3. Part 3 Placeholder URI and Owner Reveal Pipeline
  4. Part 4 Mainnet Web3Modal and Wallet Hardening
Architecture · PLAYBOOK

Placeholder metadata at mint, uridata map, reveal(tokenId, uriHash), and an owner-only reveal surface.

Chapter trail

NFT Collection Mint & Mainnet Hardening

Part 3 / 4

  1. Part 1 Collection Landing and WIP Whitelist Funnel
  2. Part 2 IPFS (InterPlanetary File System) Metadata, Mint, and Multiple Mint
  3. Part 3 Placeholder URI and Owner Reveal Pipeline
  4. Part 4 Mainnet Web3Modal and Wallet Hardening
Architecture · PLAYBOOK

Infura IPFS + Pinata pin, metadata JSON, mint(tokenId, uri) and multipleMint: 0.1 ETH × n, 750 supply.

Chapter trail

NFT Collection Mint & Mainnet Hardening

Part 2 / 4

  1. Part 1 Collection Landing and WIP Whitelist Funnel
  2. Part 2 IPFS (InterPlanetary File System) Metadata, Mint, and Multiple Mint
  3. Part 3 Placeholder URI and Owner Reveal Pipeline
  4. Part 4 Mainnet Web3Modal and Wallet Hardening
Architecture · PLAYBOOK

CBD All-Stars mint landing: #GETINTHEWIP, 750 slots, discount funnel, and how a MetaMask-only mint surface becomes a product.

Chapter trail

NFT Collection Mint & Mainnet Hardening

Part 1 / 4

  1. Part 1 Collection Landing and WIP Whitelist Funnel
  2. Part 2 IPFS (InterPlanetary File System) Metadata, Mint, and Multiple Mint
  3. Part 3 Placeholder URI and Owner Reveal Pipeline
  4. Part 4 Mainnet Web3Modal and Wallet Hardening