Armadilhas conhecidas
- Refazer transações que não confirmaram
- Esquecer o fsync, e passar nos testes por sorte
- Assumir que o log está íntegro no fim, quando pode estar cortado no meio
Nenhuma dessas quebra o teste de forma óbvia. Todas quebram o módulo seguinte.
A entrega
- Pull request no repositório da dupla, com os testes de aceitação passando
NOTES.md com um parágrafo sobre a decisão mais difícil deste módulo
- Histórico de commits que mostre o trabalho acontecendo, não um despejo final
Depois do prazo publico a implementação de referência, e a partir daí este módulo não vale mais pontos.