Reserva duplicada às 6h
Duas equipes reservaram a mesma sala de ensaio. Ambas aparecem. O engenheiro reposiciona os microfones. A equipe reposiciona de volta. O palestrante chega ao caos.
Reservas
Um motor de reservas para todo tipo de recurso, com uma restrição de exclusão GIST no banco de dados que torna a sobreposição impossível sob escritas concorrentes. Fluxos de aprovação onde você quiser, uma API limpa onde não quiser.
Se sua agenda permite que duas reservas se sobreponham, ela vai permitir — nenhuma disciplina da equipe vai impedir. O Espaços torna a sobreposição impossível no banco de dados, onde disciplina não importa.
Duas equipes reservaram a mesma sala de ensaio. Ambas aparecem. O engenheiro reposiciona os microfones. A equipe reposiciona de volta. O palestrante chega ao caos.
Salas de ensaio ficam em uma ferramenta. Palcos vivem em uma planilha. Caminhões vivem na cabeça de alguém. Uma visão entre recursos não existe porque os dados não existem.
Recursos de alto valor precisam de aprovação. O fluxo é "tirar print da agenda, mandar Slack para o gerente, esperar resposta." Sem registro, sem auditoria, sem nova tentativa.
Manutenção, retenções VIP, intervalos sindicais — bloqueios existem na cabeça de alguém. Quando uma reserva escapa, ninguém percebe até o dia.
Proteção contra sobreposição que se mantém sob escritas concorrentes, recursos polimórficos para que um módulo possa reservar os de outro, e um fluxo de aprovação que não vive no Slack.
Uma restrição de exclusão GIST sobre o intervalo de tempo torna reservas duplicadas impossíveis no nível do banco de dados. Não é palpite na camada da aplicação — é uma garantia real, segura para concorrência.
Salas de ensaio, plantas baixas de produção, recursos independentes — todos resolvidos por uma única tabela de recursos. Uma agenda, todo tipo de recurso.
A flag requires_approval por recurso direciona reservas por uma máquina de estados pendente → confirmada | rejeitada. Recursos de alto valor são gatilhados; reservas do dia a dia fluem direto.
O RPC check_reservation_conflict() retorna um 409 amigável antes que um conflito atinja o banco de dados, então a UX é informativa. A restrição GIST é a garantia final.
Janelas de manutenção, retenções, intervalos — bloqueios são registros reais com responsáveis, motivos e ciclos de vida. Reservas contra bloqueios falham de forma limpa, com o motivo visível.
Criar uma sessão de ensaio reserva a sala automaticamente. Cancelar a libera. Acoplamento entre módulos sem deriva — ambos os sistemas leem o mesmo registro.
Cada criação, aprovação, rejeição e cancelamento emite um evento de plataforma. Command Center, notificações e módulos a jusante se inscrevem — a agenda é reativa, não atualizada em lote.
Janelas de montagem de rig, slots diários de ensaio, reuniões semanais de produção — reservas recorrentes são expandidas em registros discretos com a mesma proteção contra conflitos das pontuais.
Connected by Design
Spaces doesn't own calendars — it owns the authoritative reservation record. Rehearse, Produce, and any future module all book through Spaces, so there is exactly one truth for what resource is committed when.
Inbound — data flowing into Spaces
Creating a rehearse session reserves the room automatically via the session → reservation link. Cancelling the session releases the room in the same transaction.
rehearse.session.createdOutbound — events Spaces publishes
When a reservation is cancelled on the Spaces side (maintenance, blackout), the linked session is flagged for the rehearse team — no stale bookings.
spaces.reservation.cancelledO motor de reservas não precisa de IA. Mas planejamento de capacidade, acompanhamento de aprovações e exposição de riscos precisam — então especialistas vivem nas bordas, nunca no caminho da reserva.
Reservas propostas próximas da capacidade ou de bloqueios são sinalizadas antes do envio — não com uma rejeição rígida, mas com contexto, para que quem reserva possa decidir.
% de utilização por recurso expõe salas superlotadas e subutilizadas. Planejamento de capacidade vira uma visão, não uma planilha.
Reservas paradas em aprovação pendente além de um limite aparecem com o aprovador e o recurso. Nada apodrece esperando uma resposta.
A plataforma está no ar. Solicite uma demo para ver o Spaces em ação.
Parte de uma plataforma de 13 módulos que se adapta à sua operação. Sem compromisso.