Skip to content
All projects
Case studyCS/16
StatusPersonal project
TypeSystems
Year2025

Taska

Blockchain-backed wallet system built as event-driven microservices

Auth, wallet, blockchain and explorer services, each independent, communicating over Kafka with Redis caching and PostgreSQL via Prisma, behind nginx with a Next.js front end.

  • 4 services
  • Kafka events
  • Prisma + Postgres
  • Immutable ledger

§1

The problem

Wallet transactions need to be fast for users but tamper-evident and auditable, which a single mutable database table can't guarantee on its own.

§2

My role

Designed the service boundaries and event flow; built the services, Docker setup and front end.

§3

Architecture

Fig. 1 · Taska architecture
NEXT.JS APPNGINXAUTH SERVICEWALLET SERVICEEXPLORERKAFKAtx eventsBLOCKCHAIN SVCledgerPOSTGRESQLPrisma
clientserviceeventdata

§4

Key decisions

  1. D/01

    One service per concern

    Authentication, wallet management, blockchain operations and the explorer deploy and scale independently.

  2. D/02

    Events between services

    Transactions are published to Kafka and consumed by the blockchain service, so the wallet API stays responsive.

  3. D/03

    Redis for hot reads

    Balances and recent activity are cached to keep the dashboard fast.

§5

Challenges

  • Keeping wallet balances consistent with blocks written asynchronously.
  • One docker compose command brings up every service, Kafka, Redis and PostgreSQL.

§6

Stack

  • TypeScript
  • Node.js
  • Express
  • PostgreSQL
  • Prisma
  • Kafka
  • Redis
  • Next.js
  • Docker

Next case study

SEC Filings RAG

Ask questions about FAANG 10-K filings with retrieval-augmented generation