{
"unique_document_id": "aGVsbG93b3JsZA==",
"member_id": "123456",
"file_name": "employment_contract.pdf",
"document_category_id": 101,
"document_subcategory_id": 10110,
"document_extension": ".pdf",
"document_size_in_bytes": 245678,
"date_added": "2025-09-20T12:11:01Z",
"date_updated": "2025-09-21T15:22:00Z",
"created_by_user_id": "u-01",
"updated_by_user_id": "u-02",
"notes": "Signed by both parties"
}
Para padrões de consulta, aproveitei os índices secundários de forma agressiva. Embora a tabela primária use o ID exclusivo do documento como chave, um índice secundário organizado por ID do membro e categoria do documento permite consultas eficientes como “recuperar todos os documentos de uma determinada categoria para um determinado membro” sem digitalizações caras da tabela.
O modelo esquema na leitura do NoSQL provou ser inestimável para a evolução. Quando precisamos adicionar um novo campo de metadados opcional, não houve nenhuma instrução ALTER TABLE arriscada ou tempo de inatividade. Novos documentos simplesmente começaram a incluir o atributo, enquanto os documentos existentes continuaram funcionando sem ele. Essa agilidade nos permitiu responder aos novos requisitos em horas, em vez de semanas.
Construindo recuperação de desastres e resiliência de dados
Uma estratégia abrangente de recuperação de desastres foi essencial para a continuidade dos negócios. Incorporei resiliência nas camadas de metadados e conteúdo.
