Bom, pessoal, seguinte, atomicidade, o que é isso? O lance é o seguinte, a gente tem falado aqui em Active Record, a gente tem falado aqui com Data Mapper, mas o grande ponto é que em muitas situações, você não vai apenas persistir um objeto, você vai persistir diversos objetos. Então, você vai ter que criar um cliente, criar um pedido, adicionar um item do pedido, você vai precisar baixar o estoque, você vai precisar fazer um monte de coisa numa única transação. E você vai começar a perceber que essa transação trabalha com diversos objetos. Agora, o grande ponto é, como que eu consigo garantir numa única transação que você vai ter essa consistência em todos esses dados, em todos esses objetos. Então, para isso, a gente tem que pensar em atomicidade, ou seja, você rodar uma transação de forma atômica onde ela registre todos os... ela persista todos os objetos ou não persista nenhum. Legal? Como que eu consigo garantir essas persistências normalmente? Você vai normalmente utilizar transações. O grande ponto é que trabalhar com transações, se você está trabalhando com Active Record, vai ser uma forma, você trabalhar com Data Mapper vai ser outra forma, e mesmo assim, não é simples, galera. Quando a gente tem que realizar operações complexas em domínios complexos de uma forma atômica, nunca é simples, acredite. Então, o que acontece aqui? Primeiro ponto que eu tenho que pensar é como que eu realizo compensações. Deu certo, tudo ok, deu errado. Opa, Wesley, você está falando isso aqui é simples, você faz um commit, não deu certo tudo ok deu errado ou paulo é depois tá falando isso aqui é simples né você faz um comitê não deu certo deu um roubo é beleza você consegue realmente criar essas compensações o grande ponto é como que você sabe que determinado objeto foi modificado ou não como você sabe que um objeto ele deve ser ser criado? Como que você vai perceber quando um objeto, ele tem que ser alterado e não criado? Perceba que a gente tem bastante coisas em relação a isso. E é por isso que a gente fala de um padrão aqui, que é chamado de Unit of Work. A galera do .NET ama essa parada. E realmente é um padrão que eu utilizo muito, principalmente quando quando estou trabalhando com a linguagem gol tá o que o iúnito for que ele faz galera o iúnito for que ele mantém uma lista de objetos afetados por uma transação de negócios e coordena as mudanças e os problemas de concorrência tá então o que que isso significa galera significa que todas as listas tá que você for ter né de objetos que você vai fazer uma transação você adiciona isso numa unidade de trabalho e daí essa unidade de trabalho ela vai ter um mapeamento de tudo que está sendo alterado ou inserido. Quando você tiver tudo isso mapeado, você apenas dá um commit e ele vai fazer essa mágica aí de fazer todas essas alterações aí para vocês. No próximo vídeo, eu vou falar de uma forma um pouquinho mais, como que eu posso dizer, mais profunda aqui no Unit of Work, principalmente para você entender um pouquinho essas ideias de Register New, Register Dirty, Clean, Delete e Commit. Então, vamos nessa.