{"id":35825,"date":"2026-01-12T07:00:00","date_gmt":"2026-01-12T10:00:00","guid":{"rendered":"https:\/\/building.nu.com\/?p=35825"},"modified":"2026-01-12T12:19:21","modified_gmt":"2026-01-12T15:19:21","slug":"como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank","status":"publish","type":"post","link":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/","title":{"rendered":"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Autor: <a href=\"https:\/\/www.linkedin.com\/in\/jonatanmichael\/\">Jonatan Michael<\/a><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No Nubank, lat\u00eancia n\u00e3o \u00e9 apenas uma m\u00e9trica de performance. Ela impacta diretamente a experi\u00eancia do cliente e os resultados do neg\u00f3cio. Ao construir produtos financeiros em escala, respostas consistentes abaixo de um segundo influenciam taxas de convers\u00e3o, estabilidade operacional e o n\u00edvel de confian\u00e7a com que nos integramos a parceiros externos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em um dos nossos sistemas centrais de pagamentos, uma integra\u00e7\u00e3o espec\u00edfica exigia respostas dentro de 360 milissegundos no percentil 90 (P90). Nos primeiros benchmarks, a lat\u00eancia P90 da nossa Payment Conditions API estava em torno de 1200ms, com o P99 frequentemente ultrapassando 1600ms. Reduzir esse gap exigiu mais do que ajustes de infraestrutura ou otimiza\u00e7\u00f5es pontuais \u2014 foi necess\u00e1rio entender como decis\u00f5es arquiteturais se materializavam em comportamento em tempo de execu\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nossa abordagem foi intencional e incremental. Come\u00e7amos tratando inefici\u00eancias locais do desenho existente (Fase 1). Quando os limites dessas melhorias ficaram evidentes, avan\u00e7amos para uma mudan\u00e7a estrutural que desacoplou o caminho de leitura de chamadas s\u00edncronas a servi\u00e7os downstream (Fase 2). Cada fase partiu de um problema claramente definido, seguido de uma resposta de engenharia direcionada, equilibrando corretude, performance e seguran\u00e7a operacional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fase 1: Otimizando a arquitetura existente<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em sistemas distribu\u00eddos de grande escala, inefici\u00eancias tendem a se acumular ao longo do tempo, adicionando lat\u00eancia sem entregar valor proporcional ao neg\u00f3cio. Nesta fase, nosso objetivo foi eliminar esses custos e isolar quais componentes da lat\u00eancia eram inerentes \u00e0 pr\u00f3pria arquitetura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problema 1: Cadeias profundas de chamadas entre dom\u00ednios<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma \u00fanica requisi\u00e7\u00e3o para calcular condi\u00e7\u00f5es de pagamento percorria, de forma s\u00edncrona, uma longa cadeia de servi\u00e7os:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" data-attachment-id=\"35830\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/image-51\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-3.png?fit=1024%2C474&amp;ssl=1\" data-orig-size=\"1024,474\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-3.png?fit=1024%2C474&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-3.png?resize=1024%2C474&#038;ssl=1\" alt=\"\" class=\"wp-image-35830\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-3.png?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-3.png?resize=300%2C139&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-3.png?resize=768%2C356&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center\"><em>O problema da cadeia de chamadas s\u00edncronas<\/em><\/h5>\n\n\n\n<h6 class=\"wp-block-heading has-text-align-center\">Imagem criada por IA (Gemini)<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\">Cada salto adicionava sobrecarga de rede, custo de serializa\u00e7\u00e3o e exposi\u00e7\u00e3o \u00e0 <em>tail latency<\/em>. Embora nenhum servi\u00e7o individual fosse particularmente lento, o efeito acumulado da composi\u00e7\u00e3o estritamente s\u00edncrona entre dom\u00ednios dominava o tempo de resposta ponta a ponta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Solu\u00e7\u00e3o 1: Propaga\u00e7\u00e3o de contexto<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A instrumenta\u00e7\u00e3o e o tracing mostraram que m\u00faltiplos servi\u00e7os buscavam e validavam de forma independente os mesmos dados, como limites de cr\u00e9dito e metadados de conta. Em vez de permitir que cada servi\u00e7o recomputasse essas informa\u00e7\u00f5es, refatoramos a camada de orquestra\u00e7\u00e3o para propagar contexto j\u00e1 validado ao longo do fluxo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa mudan\u00e7a reduziu as chamadas redundantes e diminuiu a carga nos servi\u00e7os downstream. Al\u00e9m disso, tornou a responsabilidade sobre os dados mais expl\u00edcita, melhorando tanto a efici\u00eancia em runtime quanto a clareza do sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problema 2: Depend\u00eancias sequenciais sem sem\u00e2ntica de dom\u00ednio<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alguns servi\u00e7os no grafo de chamadas existiam majoritariamente como camadas de roteamento. Eles encaminhavam requisi\u00e7\u00f5es sem agregar l\u00f3gica relevante de dom\u00ednio, mas ainda assim impunham custos de lat\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Solu\u00e7\u00e3o 2: Colapso de camadas n\u00e3o sem\u00e2nticas<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Onde os limites de dom\u00ednio permitiam, reorganizamos o fluxo para que o orquestrador chamasse diretamente os servi\u00e7os de destino. A remo\u00e7\u00e3o dessas camadas intermedi\u00e1rias reduziu a profundidade da cadeia de chamadas e simplificou o racioc\u00ednio sobre o caminho cr\u00edtico.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"387\" data-attachment-id=\"35827\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/image-50\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?fit=1600%2C604&amp;ssl=1\" data-orig-size=\"1600,604\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?fit=1024%2C387&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?resize=1024%2C387&#038;ssl=1\" alt=\"\" class=\"wp-image-35827\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?resize=1024%2C387&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?resize=300%2C113&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?resize=768%2C290&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?resize=1536%2C580&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?resize=1200%2C453&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/image-2.png?w=1600&amp;ssl=1 1600w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h5 class=\"wp-block-heading has-text-align-center\"><em>Remover depend\u00eancias intermedi\u00e1rias<\/em><\/h5>\n\n\n\n<h6 class=\"wp-block-heading has-text-align-center\">Imagem criada por IA (Gemini)<\/h6>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Limites da Fase 1<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essas otimiza\u00e7\u00f5es foram eficazes e de baixo risco, mas expuseram um limite estrutural. Mesmo ap\u00f3s eliminar redund\u00e2ncias e colapsar camadas, a requisi\u00e7\u00e3o ainda dependia de chamadas s\u00edncronas a diversos servi\u00e7os independentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Caracter\u00edsticas operacionais amplificavam o problema. Muitos servi\u00e7os rodam sobre a JVM e s\u00e3o implantados em inst\u00e2ncias Spot na AWS. Reciclagem de inst\u00e2ncias, deploys e efeitos de <em>warm-up<\/em> da JVM impactavam diretamente a <em>tail latency<\/em>. Enquanto o caminho de leitura dependesse desses servi\u00e7os, a variabilidade de lat\u00eancia seria inevit\u00e1vel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A partir desse ponto, melhorias adicionais exigiam uma mudan\u00e7a de estrat\u00e9gia arquitetural, e n\u00e3o apenas otimiza\u00e7\u00f5es incrementais.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fase 2: Desacoplando a composi\u00e7\u00e3o em tempo de leitura das depend\u00eancias de back-end<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apesar dos ganhos da Fase 1, as condi\u00e7\u00f5es de pagamento ainda eram compostas de forma s\u00edncrona no momento da leitura. Isso significava que a lat\u00eancia percebida pelo cliente continuava limitada pela cadeia downstream mais lenta do sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para cumprir SLOs rigorosos de forma consistente, reformulamos o problema. Em vez de montar vis\u00f5es complexas de dom\u00ednio a cada requisi\u00e7\u00e3o, passamos a avaliar se essas vis\u00f5es poderiam ser pr\u00e9-computadas continuamente e disponibilizadas para leituras r\u00e1pidas por meio de uma estrat\u00e9gia de cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Problema 3: Cache passivo n\u00e3o elimina tail latency<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionar um cache passivo \u00e0 frente do fluxo existente n\u00e3o resolveria o problema de forma estrutural. Em sistemas distribu\u00eddos com alta lat\u00eancia, <em>cache misses<\/em> ainda acionam o caminho s\u00edncrono original. Sob carga, esses misses se tornam indistingu\u00edveis de timeouts e amplificam a <em>tail latency<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O que precis\u00e1vamos era de um modelo em que <em>cache hits<\/em> fossem o comportamento padr\u00e3o, e <em>cache misses<\/em>, a exce\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Solu\u00e7\u00e3o 3: Cache persistido ativo e orientado a eventos<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Formalizamos um framework de decis\u00e3o para escolher entre cache passivo e ativo. Os crit\u00e9rios inclu\u00edam complexidade dos dados, frequ\u00eancia de atualiza\u00e7\u00e3o, volume de leitura e requisitos de consist\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As condi\u00e7\u00f5es de pagamento envolvem l\u00f3gica de neg\u00f3cio n\u00e3o trivial, s\u00e3o lidas em alt\u00edssimo volume e mudam com frequ\u00eancia a partir de eventos observ\u00e1veis do dom\u00ednio. Consist\u00eancia eventual era aceit\u00e1vel dentro de limites bem definidos, mas lat\u00eancia imprevis\u00edvel n\u00e3o. Essas caracter\u00edsticas tornaram o cache ativo a escolha adequada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Design arquitetural: Agrega\u00e7\u00e3o no momento da escrita<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na nova arquitetura, servi\u00e7os de dom\u00ednio emitem eventos sempre que ocorrem mudan\u00e7as relevantes de estado, como atualiza\u00e7\u00f5es de limites de cr\u00e9dito ou saldos de conta. Um servi\u00e7o dedicado de agrega\u00e7\u00e3o consome esses eventos, busca dados can\u00f4nicos quando necess\u00e1rio, aplica a l\u00f3gica de agrega\u00e7\u00e3o e persiste uma representa\u00e7\u00e3o totalmente materializada em um datastore de baixa lat\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa representa\u00e7\u00e3o persistida passa a ser a principal superf\u00edcie de leitura da Payment Conditions API. A maioria das requisi\u00e7\u00f5es \u00e9 atendida por uma \u00fanica consulta em escala de milissegundos, removendo completamente os servi\u00e7os downstream do caminho cr\u00edtico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao deslocar a complexidade para o caminho de escrita, isolamos a lat\u00eancia percebida pelo cliente de efeitos como variabilidade de infraestrutura, <em>warm-up<\/em> da JVM e deploys n\u00e3o relacionados em outros dom\u00ednios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Seguran\u00e7a, corretude e fallbacks<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em uma plataforma financeira, ganhos de performance n\u00e3o podem comprometer a corretude. Por isso, o cache persistido n\u00e3o \u00e9 tratado como \u00fanica fonte de verdade. Os clientes implementam obrigatoriamente um caminho de fallback. Caso o cache esteja indispon\u00edvel ou n\u00e3o atenda aos requisitos de toler\u00e2ncia de dados obsoletos, as requisi\u00e7\u00f5es retornam de forma transparente ao fluxo s\u00edncrono original.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Embora mais lento, esse fallback preserva a corretude e garante que problemas tempor\u00e1rios na camada de cache n\u00e3o bloqueiem a\u00e7\u00f5es do cliente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Observabilidade em uma arquitetura ass\u00edncrona<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Com a complexidade movida para o lado da escrita, o foco operacional acompanhou essa mudan\u00e7a. Monitoramos lag de consumo de eventos, taxas de hit e miss do cache, taxa de sucesso e lat\u00eancias percent\u00edlicas das leituras persistidas. Esses sinais nos permitem detectar degrada\u00e7\u00f5es precocemente e manter confian\u00e7a tanto na corretude quanto na performance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resultados e impacto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ap\u00f3s o deploy da nova arquitetura, a lat\u00eancia P90 caiu de aproximadamente 1200ms para 280ms, uma redu\u00e7\u00e3o de 76%. A <em>tail latency<\/em> se estabilizou significativamente, e as taxas de sucesso atingiram cinco noves, atendendo com folga os SLAs dos parceiros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais importante ainda, o sistema se tornou previs\u00edvel. A lat\u00eancia deixou de estar acoplada \u00e0 depend\u00eancia downstream mais lenta ou \u00e0 variabilidade da infraestrutura. Essa previsibilidade reduziu riscos operacionais e viabilizou novas integra\u00e7\u00f5es que antes eram invi\u00e1veis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse esfor\u00e7o refor\u00e7ou uma li\u00e7\u00e3o importante no Nubank. O caminho para melhorias de performance frequentemente come\u00e7a com ajustes pontuais (como propaga\u00e7\u00e3o de contexto e colapso de camadas n\u00e3o sem\u00e2nticas). O pr\u00f3ximo passo exige mudan\u00e7as estruturais (como uma arquitetura de cache persistente orientada a eventos). Ao mover a complexidade para o caminho de escrita, aceitamos o custo de agrega\u00e7\u00e3o ass\u00edncrona, gerenciamento de estado e observabilidade em troca de leituras r\u00e1pidas e confi\u00e1veis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A abordagem em fases foi fundamental. Ao esgotar as otimiza\u00e7\u00f5es t\u00e1ticas antes de introduzir mudan\u00e7as estruturais, evitamos complexidade arquitetural desnecess\u00e1ria e ganhamos confian\u00e7a de que cada passo atacava uma restri\u00e7\u00e3o real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Engenharia em escala n\u00e3o \u00e9 sobre maximizar otimiza\u00e7\u00f5es. \u00c9 sobre escolher as abstra\u00e7\u00f5es corretas para atender \u00e0s necessidades do cliente de forma confi\u00e1vel, sustent\u00e1vel e com o n\u00edvel adequado de complexidade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente<\/p>\n","protected":false},"author":178110103,"featured_media":35848,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":true},"categories":[2497,2586],"tags":[],"class_list":["post-35825","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-pt-br","category-software-engineering-pt-br"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank - Building Nubank<\/title>\n<meta name=\"description\" content=\"Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-12T10:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-12T15:19:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04-1024x682.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"682\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nubank Editorial\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nubank Editorial\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/\"},\"author\":{\"name\":\"Nubank Editorial\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"headline\":\"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank\",\"datePublished\":\"2026-01-12T10:00:00+00:00\",\"dateModified\":\"2026-01-12T15:19:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/\"},\"wordCount\":1517,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1\",\"articleSection\":[\"Engineering\",\"Software Engineering\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/\",\"name\":\"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1\",\"datePublished\":\"2026-01-12T10:00:00+00:00\",\"dateModified\":\"2026-01-12T15:19:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"description\":\"Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1\",\"width\":9475,\"height\":6306},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\",\"name\":\"Nubank Editorial\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"caption\":\"Nubank Editorial\"},\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/author\\\/editorial\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank - Building Nubank","description":"Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/","og_locale":"pt_BR","og_type":"article","og_title":"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank - Building Nubank","og_description":"Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente.","og_url":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/","og_site_name":"Building Nubank","article_published_time":"2026-01-12T10:00:00+00:00","article_modified_time":"2026-01-12T15:19:21+00:00","og_image":[{"width":1024,"height":682,"url":"https:\/\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04-1024x682.jpg","type":"image\/jpeg"}],"author":"Nubank Editorial","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Nubank Editorial","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#article","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/"},"author":{"name":"Nubank Editorial","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"headline":"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank","datePublished":"2026-01-12T10:00:00+00:00","dateModified":"2026-01-12T15:19:21+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/"},"wordCount":1517,"commentCount":0,"image":{"@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1","articleSection":["Engineering","Software Engineering"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/","url":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/","name":"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank - Building Nubank","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#primaryimage"},"image":{"@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1","datePublished":"2026-01-12T10:00:00+00:00","dateModified":"2026-01-12T15:19:21+00:00","author":{"@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"description":"Rearquitetando um fluxo de pagamento distribu\u00eddo com agrega\u00e7\u00e3o baseada em eventos e cache persistente.","breadcrumb":{"@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1","width":9475,"height":6306},{"@type":"BreadcrumbList","@id":"https:\/\/building.nu.com\/pt-br\/como-reduzimos-a-latencia-do-caminho-critico-em-76-no-nubank\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nu.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Como reduzimos a lat\u00eancia do caminho cr\u00edtico em 76% no Nubank"}]},{"@type":"WebSite","@id":"https:\/\/building.nu.com\/pt-br\/#website","url":"https:\/\/building.nu.com\/pt-br\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nu.com\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4","name":"Nubank Editorial","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","caption":"Nubank Editorial"},"url":"https:\/\/building.nu.com\/pt-br\/author\/editorial\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-9jP","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/01\/Nubank_Photoshoot_Colombia_-Fotografia_Edu-Vieira-1-04.jpg?fit=9475%2C6306&ssl=1","_links":{"self":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/35825","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/users\/178110103"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/comments?post=35825"}],"version-history":[{"count":4,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/35825\/revisions"}],"predecessor-version":[{"id":35868,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/35825\/revisions\/35868"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media\/35848"}],"wp:attachment":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media?parent=35825"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/categories?post=35825"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/tags?post=35825"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}