{"id":1928,"date":"2025-05-22T00:38:24","date_gmt":"2025-05-22T00:38:24","guid":{"rendered":"https:\/\/mugnos-it.com\/?p=1928"},"modified":"2025-06-03T00:51:08","modified_gmt":"2025-06-03T00:51:08","slug":"latencia-e-throughput-quem-realmente-esta-te-atrapalhando","status":"publish","type":"post","link":"https:\/\/mugnos-it.com\/pt\/latencia-e-throughput-quem-realmente-esta-te-atrapalhando\/","title":{"rendered":"Lat\u00eancia e Throughput: Quem Realmente Est\u00e1 Te Atrapalhando?"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"1928\" class=\"elementor elementor-1928\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11002d0a e-flex e-con-boxed e-con e-parent\" data-id=\"11002d0a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-46ca7dd6 elementor-widget elementor-widget-text-editor\" data-id=\"46ca7dd6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p>Sabe quando voc\u00ea sente que a sua aplica\u00e7\u00e3o t\u00e1 \u201cpesada\u201d, travando ou demorando pra responder \u2014 e fica aquela d\u00favida se o problema t\u00e1 no tempo de resposta ou na quantidade de requisi\u00e7\u00f5es simult\u00e2neas?<\/p>\n\n\n\n<p>Pois \u00e9\u2026 voc\u00ea n\u00e3o t\u00e1 sozinho. Essa d\u00favida entre <strong>lat\u00eancia<\/strong> e <strong>throughput<\/strong> \u00e9 mais comum do que parece \u2014 e entender a diferen\u00e7a entre os dois \u00e9 <strong>fundamental<\/strong> pra conseguir otimizar sua arquitetura de forma estrat\u00e9gica.<\/p>\n\n\n\n<p>N\u00e3o entender essas duas m\u00e9tricas \u2014 isoladamente e em conjunto \u2014 faz com que muitas decis\u00f5es arquiteturais cr\u00edticas sejam negligenciadas. E o pior: voc\u00ea at\u00e9 escala, mas carrega os problemas junto e a vezes o custo fica super alto. Em sistemas modernos, n\u00e3o d\u00e1 pra crescer sem dominar o comportamento de lat\u00eancia e throughput.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mas afinal, o que \u00e9 Lat\u00eancia?<\/h2>\n\n\n\n<p>Lat\u00eancia \u00e9 o tempo que uma \u00fanica chamada leva pra ser processada \u2014 do momento em que o cliente faz uma requisi\u00e7\u00e3o at\u00e9 a resposta final. Medimos isso em milissegundos, segundos (em casos extremos), e usamos percentis como p95, p99 pra entender o comportamento nos piores cen\u00e1rios.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"274\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-26-1024x274.png\" alt=\"\" class=\"wp-image-1930\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-26-1024x274.png 1024w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-26-300x80.png 300w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-26-768x205.png 768w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-26-1536x411.png 1536w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-26.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">E o que \u00e9 Throughput?<\/h2>\n\n\n\n<p>J\u00e1 throughput \u00e9 a <strong>quantidade de transa\u00e7\u00f5es que o sistema consegue processar por segundo<\/strong> (ou por minuto, hora, etc). A famosa m\u00e9trica <strong>TPS<\/strong> \u2014 transactions per second.<\/p>\n\n\n\n<p>\u00c9 importante entender que <strong>throughput e lat\u00eancia n\u00e3o competem entre si<\/strong>, mas se influenciam. Quanto maior o throughput, maior a chance da lat\u00eancia subir \u2014 e \u00e9 a\u00ed que mora o caos quando n\u00e3o se tem controle e visibilidade sobre isso.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"366\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-27-1024x366.png\" alt=\"\" class=\"wp-image-1934\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-27-1024x366.png 1024w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-27-300x107.png 300w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-27-768x274.png 768w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-27-1536x549.png 1536w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-27.png 1792w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Refor\u00e7ando\u2026<\/h2>\n\n\n\n<p>Imagina uma rodovia:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lat\u00eancia<\/strong> \u00e9 o tempo que um carro leva pra atravessar o trajeto.<\/li>\n\n\n\n<li><strong>Throughput<\/strong> \u00e9 quantos carros passam por minuto na pista.<\/li>\n<\/ul>\n\n\n\n<p>Se a via estiver vazia, cada carro (requisi\u00e7\u00e3o) passa pela via sem concorr\u00eancia. Mas se estiver congestionada, o carro aguarda a libera\u00e7\u00e3o da via e a lat\u00eancia aumenta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"487\" src=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-28-1024x487.png\" alt=\"\" class=\"wp-image-1938\" srcset=\"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-28-1024x487.png 1024w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-28-300x143.png 300w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-28-768x365.png 768w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-28-1536x730.png 1536w, https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/image-28-2048x973.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Se seu sistema t\u00e1 lento, a pergunta real n\u00e3o \u00e9 \u201co que t\u00e1 travando\u201d, mas sim:<\/p>\n\n\n\n<p><strong>\u201c\u00c9 uma \u00fanica transa\u00e7\u00e3o que est\u00e1 lenta ou s\u00e3o muitas chegando ao mesmo tempo?\u201d<\/strong><\/p>\n\n\n\n<p>E a resposta disso vai definir <strong>como voc\u00ea vai atacar o problema<\/strong>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como Melhorar a Lat\u00eancia?<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Cache e CDN<\/strong>: Deixar os dados mais pr\u00f3ximos do usu\u00e1rio. Em vez de buscar dados em servidores distantes, use cache local, Redis, Memcached, ou CDN para conte\u00fado est\u00e1tico.<\/li>\n\n\n\n<li><strong>Evitar chamadas s\u00edncronas desnecess\u00e1rias<\/strong>: Se o usu\u00e1rio n\u00e3o precisa esperar o processamento, envie a mensagem para uma fila e retorne uma resposta imediata. Isso alivia a press\u00e3o da lat\u00eancia.<\/li>\n\n\n\n<li><strong>Banco de dados eficiente<\/strong>: Otimize queries, crie views materializadas e avalie cardinalidade. Pode ser que a lentid\u00e3o esteja no banco.<\/li>\n\n\n\n<li><strong>Efici\u00eancia de c\u00f3digo (Big O)<\/strong>: Analise a performance do seu algoritmo. Pequenas melhorias podem gerar grandes ganhos em tempo de execu\u00e7\u00e3o.<\/li>\n\n\n\n<li><strong>Reduzir hops de rede<\/strong>: Evite arquiteturas com muitos microsservi\u00e7os em cascata ou que dependam de v\u00e1rios componentes em sequ\u00eancia. Cada &#8220;hop&#8221; adiciona tempo.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como Melhorar o Throughput?<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Escalabilidade horizontal<\/strong>: Separe leitura de escrita, distribua carga entre inst\u00e2ncias. Adicionar mais n\u00f3s geralmente ajuda no throughput.<\/li>\n\n\n\n<li><strong>Processos ass\u00edncronos e paralelismo<\/strong>: Use filas e workers. Em vez de bloquear um endpoint esperando processamento, use workers em background para processar.<\/li>\n\n\n\n<li><strong>Sharding e r\u00e9plicas<\/strong>: Quando a carga est\u00e1 muito alta, divida os dados por conjunto de usu\u00e1rios ou crie r\u00e9plicas para leitura.<\/li>\n\n\n\n<li><strong>Batching<\/strong>: Ao inv\u00e9s de processar item por item (como em requisi\u00e7\u00f5es REST repetidas), envie um lote de dados para processamento. Isso reduz o n\u00famero de chamadas e melhora a efici\u00eancia.<\/li>\n\n\n\n<li><strong>Balanceamento de carga inteligente<\/strong>: N\u00e3o dependa apenas do round-robin padr\u00e3o. Avalie algoritmos como least connections ou hash-based para distribuir melhor a carga.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>Lat\u00eancia e throughput s\u00e3o conceitos diferentes, mas diretamente relacionados. Melhorar um sem comprometer o outro \u00e9 uma arte na arquitetura.<\/p>\n\n\n\n<p>Muitas vezes, ao analisar a arquitetura de uma aplica\u00e7\u00e3o ou as decis\u00f5es documentadas em um <strong>ADR (Architecture Decision Record)<\/strong>, fica claro como a confus\u00e3o entre esses dois conceitos levou a solu\u00e7\u00f5es question\u00e1veis. J\u00e1 vi muitos casos onde a escolha foi aumentar o throughput achando que isso resolveria problemas de lat\u00eancia \u2014 o que raramente \u00e9 verdade.<\/p>\n\n\n\n<p><strong>Exemplo:<\/strong> Em um projeto de e-commerce que acompanhei, a equipe decidiu aumentar a quantidade de inst\u00e2ncias do servi\u00e7o de checkout, acreditando que isso reduziria o tempo de resposta. Resultado? A origem da lentid\u00e3o estava em uma query n\u00e3o indexada no banco de dados, a lat\u00eancia continuou alta \u2014 e o custo da infraestrutura aumentou sem resolver o problema real.<\/p>\n\n\n\n<p>Aguentar mais throughput n\u00e3o significa melhorar a lat\u00eancia. Cada m\u00e9trica tem seu papel e precisa ser tratada com estrat\u00e9gias espec\u00edficas.<\/p>\n\n\n\n<p>E voc\u00ea, j\u00e1 teve algum caso que gostaria de compartilhar ? n\u00e3o deixe de mandar pra mim, quem sabe seu case n\u00e3o seja assunto para um pr\u00f3ximo newsletter !!<\/p>\n\n\n\n<p>\ud83d\udea8Se curtiu esse conte\u00fado e quer aprender mais sobre arquitetura de software em um n\u00edvel bem mais aprofundado, venha fazer parte da <strong>Comunidade de Arquitetura Descomplicada (CaD)<\/strong>! Saiba mais em <a href=\"https:\/\/mugnos-it.com\/pt\/cad\/\">https:\/\/mugnos-it.com\/cad\/<\/a> \ud83d\ude80\ud83d\udea8<\/p>\n\n\n\n<p>&lt;&lt; SAIBA MAIS NA VERSAO DO V\u00cdDEO &gt;&gt; : <a href=\"https:\/\/www.youtube.com\/watch?v=dZRThlz20NU&amp;t\">https:\/\/www.youtube.com\/watch?v=dZRThlz20NU&amp;t<\/a><\/p>\n\n\n\n<p>At\u00e9 a pr\u00f3xima!<\/p>\n\n\n\n<p><\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b9102d1 e-flex e-con-boxed e-con e-parent\" data-id=\"b9102d1\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Sabe quando voc\u00ea sente que a sua aplica\u00e7\u00e3o t\u00e1 \u201cpesada\u201d, travando ou demorando pra responder \u2014 e fica aquela d\u00favida se o problema t\u00e1 no tempo de resposta ou na quantidade de requisi\u00e7\u00f5es simult\u00e2neas? Pois \u00e9\u2026 voc\u00ea n\u00e3o t\u00e1 sozinho. Essa d\u00favida entre lat\u00eancia e throughput \u00e9 mais comum do que parece \u2014 e entender [&hellip;]<\/p>","protected":false},"author":3,"featured_media":1942,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/mugnos-it.com\/wp-content\/uploads\/2025\/05\/11.-Latencia-e-Throughput-Quem-Realmente-Esta-Te-Atrapalhando.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/comments?post=1928"}],"version-history":[{"count":4,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1928\/revisions"}],"predecessor-version":[{"id":2046,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/posts\/1928\/revisions\/2046"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/media\/1942"}],"wp:attachment":[{"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/media?parent=1928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/categories?post=1928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mugnos-it.com\/pt\/wp-json\/wp\/v2\/tags?post=1928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}