{"repo":"PaulBabatuyi/double-entry-bank-Go","free":true,"listed":false,"github":"https://github.com/PaulBabatuyi/double-entry-bank-Go","clone":"git clone https://github.com/PaulBabatuyi/double-entry-bank-Go.git","description":"Double-Entry Bank Ledger in Go is a production-focused backend that demonstrates how to correctly handle money movements using strict double-entry accounting with PostgreSQL, Atomic transactions, concurrency-safe operations (serializable isolation + automatic retries), row-level locking, and full ledger reconciliation patterns used by fintech syste","language":"Go","stars":41,"topics":["cicd","docker","fintech","golang","postgresql","sqlc","accounting","double-entry"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"Double-Entry Bank Ledger in Go Production-focused Go backend that models bank-style money movement using strict double-entry accounting. It demonstrates: - Atomic transactions with PostgreSQL - Concurrency safety with serializable isolation + retry - Ledger-based reconciliation - JWT auth + account-level authorization - API docs, health checks, and Dockerized deployment The frontend is intentionally minimal — Next.js Typescript, — so the focus stays on the Go backend. See the frontend repo for details. Live Demo - Frontend: https://golangbank.app - Frontend Repo: https://github.com/PaulBabatuyi/double-entry-bank - API Docs: https://golangbank.app/swagger - Health: https://golangbank.app/health Dont forget to star and fork this project repo Article vs README This README is intentionally concise and implementation-focused. For the full technical narrative and tutorial, read the FreeCodeCamp article: How to Build a Bank Ledger in Golang with PostgreSQL using Double-Entry Accounting Core Ledger Model Each money movement writes balanced entries into the entries table: - deposit: credit user account, debit settlement account - withdrawal: debit user account, credit settlement account - transfer: debit source account, credit destination account Key constraints and behaviors implemented in code: - single-sided entry rows (debit xor credit) - account row locking ( FOR UPDATE ) during balance-changing operations - serializable transactions with automatic retry on SQLSTATE 40001 - recon","default_branch":null,"files":null,"tree":[],"storefront":"/r/PaulBabatuyi","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/PaulBabatuyi/double-entry-bank-Go/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}