From 5d0bfc2e7f052002fbba2e0042b2a7c28b333cd5 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Thu, 8 Nov 2018 17:52:12 -0200 Subject: [PATCH] going into message brokers --- _images/streamprocessing-message-broker.png | Bin 0 -> 9651 bytes _images/streamprocessing-monolith.jpg | Bin 0 -> 46384 bytes intro-stream-processing.html | 40 +++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 _images/streamprocessing-message-broker.png create mode 100644 _images/streamprocessing-monolith.jpg diff --git a/_images/streamprocessing-message-broker.png b/_images/streamprocessing-message-broker.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9eab513b52a69d0088863f688b76e4a9b69f31 GIT binary patch literal 9651 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 oJn28=&vSEAexT*APfGqp + +
+

Por que isso é importante?

+ +
    +
  • Os clientes são cobrados pelo tráfego que passa pela CDN.
  • +
  • Queremos mostrar o consumo em tempo real.
  • +
  • ... para todos os clientes.
  • +
+
+ +
+

Como resolver isso?

+ +

Poderíamos simplesmente ir somando o total

+

... se não tivéssemos várias máquinas processando.

+
+ +
+

Como resolver isso?

+ +

Poderíamos mandar todos os dados para um banco de dados e ir marcando os registros como processados

+

... se isso não significasse que o banco cresceria infinitamente.

+

... a não ser que registros antigos fosse apagados.

+

... que é o que serviços de mensageria fazem.

+
+ + +
+
+

Message Brokers

+
+
+ +
+
+

Batch Processing

+
@@ -188,7 +226,7 @@ center: true, // showNotes: true, - transition: 'slide', // none/fade/slide/convex/concave/zoom + transition: 'fade', // none/fade/slide/convex/concave/zoom // Optional reveal.js plugins dependencies: [