Practical Benefits of an Event Driven Approach
feedback
Reviewer 1
we can’t easily just reprocess newPayment without reprocessing the whole transactionSync
example of this
if newPayment had a bug it won’t affect transactionSync
you can save events to reprocess then
example of monitoring, apm
Reviewer 2
Very good article with interesting content. Woovi’s approach is very like the approach that we are using at another company for payments notifications.
1. “Three successive sentences begin with the same word”:
To code newPayment you need to understand how transactionSync works, more cognitive load To test newPayment, you need to test transactionSync together, as a consequence you have a more complex test with more complex fixtures and test scenarios. To refactor newPayment, you could break transactionSync, these codes are highly coupled.
2. “This sentence does not start with an uppercase letter”: To the following phrases:
we can’t easily just reprocess newPayment without reprocessing the whole transactionSync
we can easily reprocess newPayment without reprocessing the whole transactionSync
Reviewer 3
um pequeno typo no texto:
To code newPayment you DON’T need to understand how transactionSync works, fewer cognitive load
Reviewer 4
“This article aims to give a real world example and it this clear.” -> “This article aims to give a real and clear example.”
“The bank sends a new transaction webhook for Woovi backend” -> replace “webhook to Woovi’s backend”
coproduto
To code newPayment you do need to understand how transactionSync works, fewer cognitive load
acho que era “you do NOT need to understand”
E nesse caso é “less”, não “fewer”
Fewer só se usa com coisas contáveis
Tipo, você pode falar “fewer potatoes” mas não “fewer water” (porque batatas são contáveis, mas água não é)
eu consideraria “cognitive load” incontável
Fewer também só se usa em comparações
Você pode considerar que tem uma comparação implícita aí, mas ainda tem o problema da contabilidade
De resto eu curti a ideia do post
Mas eu acho que não ficou muito claro como que isso funcionaria sem usar microsserviços
Eu imagino que você esteja usando um job queue ou algo do tipo?
Talvez fosse bom explicitar como é que esses eventos vão ser processados sem usar serviços
pq do jeito que está parece que você só está jogando um evento pro vácuo e de alguma forma o processamento acontece
Outra coisa também é que não ficou muito claro por que é que as coisas seriam desacopladas
Afinal, você pode escrever a função newPayment de forma desacoplada sem usar eventos também, só tem um ponto de acoplamento necessário entre os dois que é o payload que essa função vai receber
E esse continua, n
né *
os dois lados têm que concordar com o formato do evento
Então talvez fosse bom explicitar de que tipo de acoplamento você tá falando
- 5 blog posts feedback1. Muito cru Quem lê também pode reforçar um bias towards over engineering Unicode é futureproof A partir de uma abstração que eu vejo como over engineering, mas future proof…
- Architecture of Open Source
- Blank CanvasA blank canvas is starting to do something out of nothing It is very hard to build something without nothing to start with The idea of Zettelkasten is to fill this canvas with…
- Building from Scratch?why am I building my blog post from scratch? The idea is to learn all about the details to create great ux and dx I'd like to feel all the pain of writing everything in pure html…
- Constraint are goodMost people think about constraint in a bad way I think constraint is good for many reasons Constraints gives you a limited set of options to perform or use. GraphQL is better…
Sign in with GitHub to reply.
Select any passage to quote it.
Comments