# Побудувала систему лояльності та репутації — 67 функцій над реєстром із 31 таблиці, з лігами, бейджами та крамницею обміну — де блокування рядка балансу закриває вікно подвійного витрачання.

2025

**Ситуація.** Професійний нетворкінг має проблему холодного старту: платформою варто користуватися тоді, коли нею вже користуються інші, а доти майже немає причин повертатися. Звичний важіль — це система винагород: бали за внесок, статус, що відображає репутацію. Описати її легко, а побудувати підступно, бо щойно бали можна витратити, вони стають грішми, і кожна помилка, якої припускаються з грішми, доступна й тут.

**Завдання.** Внесок мав бути вимірюваним і винагороджуваним, а баланс — таким, який не можна витратити двічі.

**Дія.** Схема лояльності налічує 31 таблицю та 67 функцій, статус — ще 5 таблиць і 32 функції, а поруч стоять схеми discovery й персоналізації, які вирішують, що саме бачить конкретний учасник. Над реєстром надбудовані ліги, бейджі та крамниця обміну, де баланс перетворюється на щось реальне. Найбільше уваги забрав найдавніший баг у світі: перевірити баланс, потім списати його — і два запити, що прийшли одночасно, обидва проходять перевірку. Кожна мутація бере блокування рядка гаманця, перш ніж його прочитати, тож другий запит чекає на завершення першого, а не змагається з ним. І те, що гаманець лежить у тій самій базі даних, що й усе інше, — саме це взагалі робить таке можливим: баланс і те, що на нього куплено, комітяться разом або не комітяться зовсім.

**Результат.** Внесок вимірюється й винагороджується, а баланс — це арифметика, а не наближення. Блокування рядка — повільніша відповідь, і його все одно обрано: конкуренція за гаманець — це черга, а альтернатива — учасник, який витрачає ті самі бали двічі, і хтось, хто потім звіряє це вручну.

---

- Роль: Інженер баз даних
- Категорії: [Backend‑розробка](https://software.engineer.company/uk/categories/backend/), [Бази даних](https://software.engineer.company/uk/categories/databases/), [PostgreSQL](https://software.engineer.company/uk/categories/postgresql/), [SQL](https://software.engineer.company/uk/categories/sql/), [Оптимізація продуктивності](https://software.engineer.company/uk/categories/performance/), [Продукт і вимоги](https://software.engineer.company/uk/categories/product/)
- Послуги: [Backend- та API‑розробка](https://software.engineer.company/uk/services/backend-development/), [Проєктування та моделювання баз даних](https://software.engineer.company/uk/services/database-design/), [Продуктова стратегія та вимоги](https://software.engineer.company/uk/services/product-strategy/)

<https://software.engineer.company/uk/portfolio/built-the-loyalty-and-reputation-system-105/>
