Dragon Fusion — Sessão Completa de Backend (v1)

Especificação consolidada para implementação do backend de produção, coerente com o escopo já definido do projeto: Puzzle + RPG leve, economia autoritativa, ranking sazonal, hatchery, evolução e LiveOps.

Princípios: servidor autoritativo para recursos críticos, idempotência por txnId, timers UTC, telemetria orientada a decisão, e baixo custo operacional para estúdio indie.

1) Objetivos do backend

2) Arquitetura lógica (modular monolith v1)

MóduloResponsabilidadeAutoritativo?
AuthIdentidade de player, sessão, refresh token, device bindingSim
ProfileNome, nível, XP, configurações, consentimentoParcial
EconomyCarteira, gastos, créditos, ledger, antifraudeSim
ProgressionMundos, fases, estrelas, unlocks, medalhasSim
BattleStart/end de fase, validações de score, revive, boostersSim
HatcheryIncubação, speed-up, claim, pity timer, duplicata→essênciaSim
DragonsColeção, níveis/tier, dragão ativo, skill unlockSim
MissionsDiárias/semanais, progress tracking, claim allSim
LeaderboardRanking, brackets, tiebreak, payoutSim
Offers/IAPOfertas contextuais, validação de recibo Apple/GoogleSim
LiveOpsConfig dinâmica por data/segmentoSim
AnalyticsIngestão de eventos e agregaçõesN/A

Decisão v1: modular monolith (1 deploy) + filas internas. Evita complexidade prematura de microserviços.

3) Stack de infraestrutura recomendada

4) Modelo de dados (núcleo)

4.1 Tabelas essenciais

TabelaCampos-chaveNotas
playersplayer_id, created_at, statusIdentidade base
player_profileplayer_id, level, xp, language, settings_jsonDados de perfil
walletsplayer_id, gold, gems, essence, energy_current, energy_last_tick_utcSaldo autoritativo
economy_ledgerledger_id, player_id, currency, amount, reason, txn_id, created_atAuditoria financeira
player_progressplayer_id, world, stage, stars_json, medals_jsonProgresso e platina
battle_runsrun_id, player_id, stage_id, seed, started_at, ended_at, result, scoreRastro de fase
player_boostersplayer_id, hint, undo, shuffle, turboInventário de utilitários
hatch_slotsslot_id, player_id, egg_type, start_utc, end_utc, stateIncubação UTC
player_dragonsplayer_id, dragon_id, tier, level, activeColeção/evolução
mission_stateplayer_id, mission_id, progress, target, claimed, reset_atMissões
leaderboard_scoresseason_id, player_id, score, updated_atRanking sazonal
season_rewardsseason_id, player_id, bracket, reward_json, claimedPayout final
iap_receiptsreceipt_id, player_id, store, product_id, status, verified_atValidação IAP
liveops_configsconfig_key, version, payload_json, starts_at, ends_atConfig dinâmica

4.2 Índices e constraints críticos

5) Contratos de API (v1)

5.1 Sessão e bootstrap

5.2 Battle flow

5.3 Progress, hatch, dragon

5.4 Economy e liveops

6) Regras críticas de consistência

FluxoRegraProteção
Claim recompensa1x por condiçãotxnId + unique index
Revivermax 3 por runcontador server-side + lock por run
Hatch timerbase UTCignorar relógio local
IAPsomente após verifystore API + dedupe receipt
Season rewardclaim únicoflag claimed + transação atômica

7) Segurança e antifraude v1

8) Telemetria e KPIs operacionais

8.1 Eventos obrigatórios

session_start, level_start, level_end, magic_used, booster_used, revive_offer_shown, revive_accept, hatch_complete, purchase_success, mission_claim.

8.2 Dashboards de decisão

9) Operação de LiveOps

9.1 Entidades liveops

9.2 Guardrails

10) SLOs e confiabilidade

MétricaMeta v1
Disponibilidade API99.5%
P95 latência (GET)< 180ms
P95 latência (POST crítico)< 280ms
Erro 5xx< 0.5%
Perda de evento analytics< 1%

11) Roadmap backend em 3 fases

Fase A — MVP estável (2–4 semanas)

Fase B — Soft launch operável (2–3 semanas)

Fase C — Escala inicial (3+ semanas)

12) Riscos e mitigação

RiscoImpactoMitigação
Duplicação de recompensaAltotxnId + transação serializável + testes de concorrência
Exploit de relógioAltoUTC servidor em energia/hatch/evento
Fraude de scoreMédio/AltoreplayHash + regras de plausibilidade
Quebra por config liveopsMédioschema validation + dry-run + rollback
Custo infra acima do esperadoMédiocache agressivo + batching + compressão

13) Checklist de prontidão backend (go/no-go)

← Voltar ao Hub