Casos Criminales - Real-time detective game
Boardcork's digital product: up to 10 devices cracking the same criminal case on a shared board. Live in production, with accounts and payments.

Casos Criminales
The problem that nearly sank the product
- Delays. You moved a clue on the board and the rest of the team saw it half a second later. In a co-op game against the clock, half a second feels like a broken app.
- Conflicts. Two players touched the same element at almost the same time and state went inconsistent across devices. Each person saw a different board. In a deduction game that isn't a UI bug - it destroys the session.
The diagnosis: the bottleneck wasn't Socket.IO
The decision: get the database off the critical path
- Game state lives in memory while the session is active. It's the single source of truth during play, and it's authoritative: it resolves action ordering in one place, so two players touching the same thing can no longer diverge.
- Events broadcast straight from that state, without waiting on any I/O.
- The database write happens when the session ends, outside the game loop, where a few hundred milliseconds of latency matter to nobody.
The result
- Delays disappeared: with no I/O on the critical path, broadcasts are immediate.
- State conflicts disappeared: with a single authoritative source of truth per session, there are no competing writers.
- The system holds the 10 simultaneous devices per session that the product needs.
The trade-off, which is the honest part
The experience
- Shared board: the whole team works on the same case in real time.
- Full case file: clues, suspects and documents to analyse.
- Answer review: the system reviews the team's answers before delivering the verdict.