Conteúdo original nessa thread do Twitter
Devs,
Cêis curtem história de amor, né? Então fica aqui que vou mostrar como uma história de amor e angústia foi resolvida com Event-Carried State Transfer ─ um padrão muito bonito ♥️
Vai ter amadurecimento emocional, espaço para o outro ser e muito mais.
cc @sseraphini
🧵
Lea era muito amada por Rob, mas Rob era muito carente e tudo que planejava fazer, perguntava a ela se ainda o amava. No começo era legal, mas isso consumia muito Lea.
Por vezes, Lea não respondia e isso causava muita dor a Rob.
A demanda sobre Lea aumentava proporcionalmente ao crescimento dos desejos de Rob. E isso era extenuante a nossa querida Lea.
Lea então decidiu que não mais participaria daquilo que considerava uma questão de domínio apenas de Rob! "Chega!", disse a si mesma num momento decisivo. Assim, cortara acesso àquele canal de questionamentos quase retóricos de Rob.
Mas o amor de Lea era também genuíno. Precisaria então disponibilizar uma forma para que Rob soubesse de seu amor.
Durante um agradável jantar, Lea ─ firme, porém amorosa ─ explicou à Rob que a partir daquele momento iria avisá-lo sempre que seu amor por ele mudasse.
Rob ─ atento e apreensivo ─ continuou a escutar sua amada.
"Babe, I love you so and vou disponibilizar um canal para informar sempre que houver alguma mudança sobre o que sinto for you, okay?"
Lea disponibilizaria essa possível mudança de estado num barramento de eventos.
O começo dessa fase não foi fácil para os dois. Mas com alguns ajustes, tudo ficou bem. E em uma mistura de estreia, despedida, e amadurecimento, Lea publicou no barramento o estado de seu amor por Rob que ─ claro ─ era genuíno e promissor.
No começo, Rob estranhou o novo formato. Entretanto, se sentiu mais livre e satisfeito por fazer sua amada também mais livre.
Hoje, após 2 anos dessa mudança difícil, porém importante para a autonomia dos dois, Rob consegue realizar seus desejos de forma muito mais autônoma.
Caiu uma lagriminha, vai? 💕
Publicar mudanças de estado num barramento é o tal do Event-Carried State Transfer. Ou seja, em tradução livre "Transferência de Estado Carregada por Evento".
A ideia por trás disso é que o sistema que tiver seu ESTADO ALTERADO notificará isso.
E fazendo isso, seu estado será carregado via evento e transferido para outros sistemas que se interessem por ele, sem que o publicador do evento precise necessariamente saber quem são.
Uma explicação melhor aqui, ó -> https://martinfowler.com/articles/201701-event-driven.html
A ideia fundamental aqui é que Lea e Rob sejam dois microsserviços distintos e que funcionem de forma desacoplada. O banco de dados de Rob é parte do microsserviços de Rob.
Mas continua aqui que a história de Lea e Rob ainda não acabou.
Rob e Lea tiveram um filho lindo ─ Christian ─, mas infelizmente o amor entre eles acabou.
Rob continua trabalhando na Holanda ganhando 15k euros por mês. Lea trabalha para uma empresa Japonesa desenvolvendo games, mora no Nordeste, ganha U$ 240k/ano e vai a Tóquio 5x por ano.
Christian acaba ficando com Lea a maior parte do tempo. Mas Rob o visita quase todos os meses.
Rob e Lea já combinaram de Chris estudar na Holanda quando ficar mais velho.
Se chegou até aqui, já sabe, né? É abraço, beijo, elogio e rasgação de seda pra vc! 💕
Top comments (0)