I’m actually working on a toy payment processor for fun and to learn some new tech.<p>The tech I’ve chosen:<p>- Postgres for the DB<p>- Redis for caching + queues<p>- Go for the customer-facing backend services<p>- Rust for the bank-facing services<p>- gRPC for internal communication<p>- TypeScript + React for the frontend checkout app<p>- HashiCorp stack for deployment
Postgres for the database for the start and maybe this does suffice. Maybe think now how you could model a transaction with something like Cassandra.
Only append the data. No updates to transactions. The balance is the sum over all transactions over time. Use something like a double entry bookkeeping system so you don’t make up any money out of thin air.<p>Keep in mind how to do reconciliation, what is a transaction, how to do idempotency.<p>For the backend Erlang/BEAM.