Berkomunitas
A community platform with tasks, badges and ranking, whose coin balance is bridged into a wallet living in an entirely separate system.
- separate systems joined by one coin ledger
- 2
- Built for
- DRW Corp
The problem
Engagement platforms are easy to build and easy to make meaningless. The reward has to be worth something outside the app, and the moment it is, the balance stops being a score and becomes money — which means it has to be correct under concurrency, not merely plausible.
The complication here is that the wallet it settles into belongs to a different product, on different infrastructure, in a different language, owned by a different team.
The approach
Balances are never written by the application. A member''s activity inserts a history row and a database trigger derives the balance from it, so two requests arriving together cannot both read a stale total and write the same one back.
The bridge to the other system is a one-way webhook with its own contract, documented on both sides, so neither product can change a column and silently break the other. Scheduled jobs on the platform''s own VPS drive imports and payouts.
It runs on separate infrastructure from the rest of our work on purpose: it is a different business with a different failure surface, and coupling them would mean one deploy could take down both.
The outcome
Live at berkomunitas.com on its own VPS, with tasks, badges, ranking and a loyalty coin that settles into the wallet next door.
The trigger-derived balance means a concurrent double-claim cannot produce a double credit.