CASE FILE. 07 / MOBILE / HOUSEHOLD

Our Home

Aplicativo para iPhone em que casais e famílias compartilham compras, tarefas recorrentes e responsabilidades, com sincronização em tempo real.

  • Expo SDK 57
  • React Native
  • TypeScript
  • Supabase
  • PostgreSQL
Ver todos os projetos

BRIEF. 01 / PROBLEMA E FRONTEIRA

O produto em uma leitura.

Um recorte deliberado do estado atual. Métricas e hipótese continuam editoriais até que exista evidência pública para substituí-las.

QUESTÃO DE TESTE

A rotina fica mais leve quando compras, tarefas e contexto vivem no mesmo lugar?

Sincronizar a rotina de vários moradores sem perder autoria, recorrência ou isolamento dos dados de cada casa.

ROTINA
COMPRAS + TAREFAS
RÓTULO EDITORIAL
SINCRONIA
REALTIME + RLS
RÓTULO EDITORIAL
CAPACIDADES
5
frontend / backend / data / realtime / integrations
PORTA PÚBLICA
NÃO
SUPERFÍCIE PRIVADA

SYSTEM TRACE. 02 / FLUXO PRINCIPAL

Fronteiras antes de frameworks.

App React Native → comandos e canais Supabase → PostgreSQL com RLS, RPCs e triggers → projeção sincronizada por casa.

  1. 01
    APP

    iOS client

    Expo / React Native / TypeScript

  2. 02
    SYNC

    Realtime projection

    Supabase channels / refresh

  3. 03
    DOMAIN

    Database commands

    RPCs, triggers e recorrência

  4. 04
    DATA

    Household boundary

    PostgreSQL / Auth / RLS

intent → policy → authoritative state → observable effect
EXECUTION TRACE / ILLUSTRATIVE

Um caminho. Cada decisão à vista.

Sequência editorial para discutir contrato, autoridade e efeito. Não representa telemetria real de produção.

  1. APP

    Envia a intenção com tarefa, novo status e sessão autenticada.

    status.requested
  2. DOMAIN

    A RPC valida vínculo com a casa e aplica a transição.

    status.changed | denied
  3. DATA

    Triggers registram autor e horário e calculam a próxima ocorrência.

    history.appended
  4. SYNC

    O evento invalida a projeção e cada morador recarrega o estado da casa.

    household.converged

DECISION LOG. 03 / TRADE-OFFS

Toda escolha cobra algo.

Manter autorização e transições críticas junto ao banco; o app envia intenções e reconcilia a projeção via Realtime.

  1. 01 / AUTORIZAÇÃO

    RLS e comandos críticos junto ao banco

    GANHO
    A fronteira por casa continua válida mesmo fora da interface mobile.
    CUSTO
    Migrações, grants, RPCs e políticas precisam evoluir e ser testados como um conjunto.
  2. 02 / SINCRONIA

    Evento invalida; cliente recarrega a projeção

    GANHO
    O MVP evita reconstruir localmente cada mutação concorrente recebida.
    CUSTO
    A convergência faz leituras adicionais e depende de uma retomada bem tratada.
  3. 03 / ESCOPO

    Uma casa ativa na interface inicial

    GANHO
    Criação, convite e rotina chegam ao uso antes de um seletor mais amplo.
    CUSTO
    O banco aceita várias casas, mas a navegação entre elas fica para outra etapa.

RELIABILITY. 04 / FALHAR COM CONTEXTO

Modo de falha. Sinal de volta.

Não são métricas de produção publicadas. São os riscos que o desenho precisa tornar observáveis e os sinais candidatos para a próxima rodada.

FAILURE MODES
  1. 01

    Convite e remoção do mesmo morador acontecem quase ao mesmo tempo.

  2. 02

    Uma tarefa mensal concluída perto da virada de fuso reabre na data errada.

  3. 03

    O aplicativo perde eventos enquanto permanece suspenso no iPhone.

OBSERVABILITY CANDIDATES
  1. 01

    Tempo entre uma mudança e a convergência nos dispositivos da mesma casa.

  2. 02

    Negativas de RLS e falhas por RPC, tabela e papel do morador.

  3. 03

    Recorrências reabertas na data correta por frequência e fuso horário.

INCIDENT DRILL. 05 / CONTENÇÃO → RECUPERAÇÃO → PROVA

Quando a hipótese quebra.

Exercícios editoriais de resiliência, não incidentes reais nem runbooks de produção. Cada drill transforma um modo de falha em uma resposta discutível e testável.

DRILL-01Convite e remoção do mesmo morador acontecem quase ao mesmo tempo.SIMULATION / NATIVE

Resposta para: Convite e remoção do mesmo morador acontecem quase ao mesmo tempo.

CONTAIN
Serializar a entrada no banco, revogar convites do removido e consultar o bloqueio antes de criar o vínculo.
RECOVER
Manter a conta fora da casa e permitir somente uma decisão administrativa explícita para um futuro desbloqueio.
PROVE
Repetir a corrida transacional e confirmar ausência de membership, bloqueio persistido e códigos revogados.
DRILL-02Uma tarefa mensal concluída perto da virada de fuso reabre na data errada.SIMULATION / NATIVE

Resposta para: Uma tarefa mensal concluída perto da virada de fuso reabre na data errada.

CONTAIN
Preservar a ocorrência atual e interromper rollovers derivados de uma referência temporal inconsistente.
RECOVER
Recalcular a próxima data no servidor a partir da regra persistida e retomar a tarefa uma única vez.
PROVE
Executar casos de borda de fuso, mês e ano e conferir status, next_due_at e evento automático.
DRILL-03O aplicativo perde eventos enquanto permanece suspenso no iPhone.SIMULATION / NATIVE

Resposta para: O aplicativo perde eventos enquanto permanece suspenso no iPhone.

CONTAIN
Não assumir que a projeção em memória continua atual depois da troca de estado do app.
RECOVER
Revalidar sessão e contexto ao voltar para ativo, então recarregar membros, compras e tarefas.
PROVE
Alterar a casa em outro dispositivo durante a suspensão e confirmar convergência após a retomada.

DESIGN EXERCISE / REVISAR CONTRA TELEMETRIA E RUNBOOKS REAIS ANTES DE OPERAR

EVIDENCE. 06 / O QUE PODE SER DEFENDIDO

Fato à vista. Lacuna também.

Validar a versão 1.0 em iPhones reais antes de avançar para notificações e calendário compartilhado.

FATOS CONFERIDOS
  • Expo SDK 57 + React Native
  • Supabase Auth, Postgres + Realtime
  • Compras e tarefas compartilhadas
  • Recorrência + histórico de status
  • RLS + exclusão de conta pelo app
  • Versão 1.0 preparada para iPhone
Tela demonstrativa do Our Home no iPhone com resumo e cartões de tarefas compartilhadas da casa.
OUR HOME / IOS MVP / Captura real do modo demonstração: tarefas recorrentes, responsáveis, status e autoria sem expor dados pessoais.

INTERVIEW MODE. 07 / APROFUNDE A CONVERSA

Três pontos para abrir no quadro.

Perguntas que conectam o case a system design, produto e operação sem transformar uma decisão contextual em regra universal.

  1. 01

    Como desenhar RLS e RPCs para que a fronteira multi-tenant não dependa do cliente.

  2. 02

    Quando trocar invalidação com refresh por eventos incrementais ou estado offline-first.

  3. 03

    Como testar recorrência, concorrência de convites e retomada mobile sem depender do relógio real.

CASE FILE / 07

A arquitetura é hipótese.
O uso real é o teste.

Conhecer quem constrói