{"id":36873,"date":"2026-06-10T16:26:27","date_gmt":"2026-06-10T19:26:27","guid":{"rendered":"https:\/\/building.nu.com\/?p=36873"},"modified":"2026-10-14T14:23:37","modified_gmt":"2026-10-14T17:23:37","slug":"feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features","status":"publish","type":"post","link":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/","title":{"rendered":"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Escrito por: <a type=\"link\" href=\"https:\/\/www.linkedin.com\/in\/felipeqbalmeida\/?locale=pt\" id=\"https:\/\/www.linkedin.com\/in\/felipeqbalmeida\/?locale=pt\">Felipe Almeida<\/a>, com contribui\u00e7\u00f5es de<a type=\"link\" href=\"https:\/\/www.linkedin.com\/in\/lzfelix\/\" id=\"https:\/\/www.linkedin.com\/in\/lzfelix\/\"> Luiz Felix<br><\/a><br><em>Esta \u00e9 a primeira parte de uma s\u00e9rie de tr\u00eas partes sobre feature stores para ML em tempo real no Nubank. Na <a href=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-parte-2-licoes-aprendidas-em-producao\/\">parte 2<\/a>, exploraremos as li\u00e7\u00f5es que aprendemos ao usar feature stores em produ\u00e7\u00e3o. Na <a href=\"https:\/\/building.nu.com\/pt-br\/feature-stores-em-ml-em-tempo-real-parte-3-exemplos-do-nubank\/\" data-type=\"link\" data-id=\"https:\/\/building.nu.com\/pt-br\/feature-stores-em-ml-em-tempo-real-parte-3-exemplos-do-nubank\/\">parte 3<\/a>, percorreremos arquiteturas ponta a ponta usadas em cen\u00e1rios do mundo real.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Introdu\u00e7\u00e3o a feature stores<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uma das poucas constantes no desenvolvimento de software \u00e9 que os sistemas tendem a acumular entropia e ficar mais complexos com o tempo. \u00c9 poss\u00edvel, no entanto, desacelerar essa deteriora\u00e7\u00e3o extraindo funcionalidades comuns para bibliotecas e plataformas. Isso simplifica os sistemas e mant\u00e9m a complexidade em n\u00edveis gerenci\u00e1veis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conforme uma organiza\u00e7\u00e3o orientada por dados cresce e amadurece, o c\u00f3digo de ML <em>tamb\u00e9m<\/em> tende a se tornar cada vez mais complexo. Por exemplo, quando os modelos come\u00e7am a ser usados em v\u00e1rios times, \u00e9 comum ver a l\u00f3gica de features duplicada em diversos lugares. Isso torna muito mais dif\u00edcil gerenciar e manter esses modelos e impede o re\u00faso de c\u00f3digo na organiza\u00e7\u00e3o.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-align-left wp-block-paragraph\"><em>\u201cTodos os problemas em ci\u00eancia da computa\u00e7\u00e3o podem ser resolvidos [adicionando] outro n\u00edvel de indire\u00e7\u00e3o\u201d <\/em><br><em>\u2014 David Wheeler<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Uma estrat\u00e9gia comum para lidar com esse problema \u00e9 centralizar toda a l\u00f3gica de features em uma biblioteca, de modo que os times possam reusar as features uns dos outros em vez de ter que reescrev\u00ea-las e duplic\u00e1-las sempre que treinam um novo modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando os modelos s\u00e3o usados para infer\u00eancia em tempo real, existe <em>ainda<\/em> <em>mais uma<\/em> camada de c\u00f3digo envolvida, a saber, o c\u00f3digo usado para recuperar features no tempo de infer\u00eancia. Esse c\u00f3digo de \u201ctempo de infer\u00eancia\u201d normalmente fica em microsservi\u00e7os no ambiente de produ\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Feature stores<\/strong> s\u00e3o plataformas que centralizam a l\u00f3gica de features para todos os modelos de uma organiza\u00e7\u00e3o. Em cen\u00e1rios de infer\u00eancia em tempo real, a feature store tamb\u00e9m fornece endpoints centralizados para a recupera\u00e7\u00e3o de features.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-align-left wp-block-paragraph\"><em>Uma feature store \u00e9 uma plataforma que centraliza o gerenciamento de features (no tempo de treino e no tempo de infer\u00eancia).<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Vamos olhar dois exemplos de como fica o c\u00f3digo de ML com e sem uma feature store, tanto no tempo de treino quanto no tempo de infer\u00eancia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tempo de treino<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No tempo de treino, usar uma feature store significa que cada time importar\u00e1 as defini\u00e7\u00f5es de features de uma biblioteca padr\u00e3o, em vez de definir as suas pr\u00f3prias, espec\u00edficas do time. Na Figura 1 abaixo, mostramos exemplos de como o c\u00f3digo de treino fica com e sem uma feature store:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"551\" data-attachment-id=\"36990\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-66\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?fit=1722%2C926&amp;ssl=1\" data-orig-size=\"1722,926\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?fit=1024%2C551&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?resize=1024%2C551&#038;ssl=1\" alt=\"\" class=\"wp-image-36990\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?resize=1024%2C551&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?resize=300%2C161&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?resize=768%2C413&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?resize=1536%2C826&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?resize=1200%2C645&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-29.png?w=1722&amp;ssl=1 1722w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 1 \u2014 From feature_store import:<\/em><\/strong><em> no tempo de treino, os times de ci\u00eancia de dados geralmente partem de um dataset base contendo IDs de entidades e timestamps, e iterativamente \u201caplicam\u201d features sobre ele. Com uma feature store, essa \u201cl\u00f3gica de features\u201d \u00e9 extra\u00edda para uma biblioteca compartilhada e reutiliz\u00e1vel.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Tempo de infer\u00eancia<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No tempo de infer\u00eancia, as features precisam ser recuperadas por algum tipo de orquestrador. Em arquiteturas baseadas em microsservi\u00e7os, esse orquestrador ser\u00e1 um servi\u00e7o (chamado \u201cServi\u00e7o upstream\u201d na Figura 2 abaixo) que vai montar o payload, envi\u00e1-lo para o modelo de ML em tempo real e tratar as predi\u00e7\u00f5es do modelo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"581\" data-attachment-id=\"36879\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-61\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?fit=1752%2C994&amp;ssl=1\" data-orig-size=\"1752,994\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?fit=1024%2C581&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?resize=1024%2C581&#038;ssl=1\" alt=\"\" class=\"wp-image-36879\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?resize=1024%2C581&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?resize=300%2C170&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?resize=768%2C436&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?resize=1536%2C871&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?resize=1200%2C681&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-13.png?w=1752&amp;ssl=1 1752w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 2:<\/em><\/strong><em> uma feature store abstrai toda a complexidade envolvida em recuperar, calcular e transformar features usadas em tempo real.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Atendimento de features por \u201cchamada direta\u201d vs. baseado em streaming<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para fornecer uma feature a um servi\u00e7o upstream, a feature store precisa <em>primeiro<\/em> recuperar essa informa\u00e7\u00e3o de alguma forma. As duas estrat\u00e9gias mais comuns s\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>(1) Chamada direta:<\/strong> nesse modelo, a feature store faz chamadas HTTP diretamente aos microsservi\u00e7os que possuem os dados necess\u00e1rios sempre que uma feature \u00e9 solicitada.<\/li>\n\n\n\n<li><strong>(2) Streaming:<\/strong> aqui, os microsservi\u00e7os publicam eventos em uma camada de streaming, como o Kafka, \u00e0 medida que os eventos acontecem. A feature store ent\u00e3o consome esses eventos e recupera as features da camada de streaming quando necess\u00e1rio. Em alguns casos, essas features tamb\u00e9m s\u00e3o armazenadas em bancos de dados locais para acesso mais r\u00e1pido.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Essas duas estrat\u00e9gias s\u00e3o ilustradas abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"582\" data-attachment-id=\"36933\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-65\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?fit=1692%2C962&amp;ssl=1\" data-orig-size=\"1692,962\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?fit=1024%2C582&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?resize=1024%2C582&#038;ssl=1\" alt=\"\" class=\"wp-image-36933\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?resize=1024%2C582&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?resize=300%2C171&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?resize=768%2C437&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?resize=1536%2C873&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?resize=1200%2C682&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-26.png?w=1692&amp;ssl=1 1692w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 3:<\/em><\/strong><em> as features podem ser recuperadas diretamente dos servi\u00e7os de origem ou por meio de plataformas de streaming como o Kafka. As features baseadas em streaming s\u00e3o frequentemente chamadas de <\/em><strong><em>near-real-time<\/em><\/strong><em> porque podem ter pequenos atrasos de atualiza\u00e7\u00e3o, normalmente da ordem de milissegundos ou segundos.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma \u00fanica feature store pode suportar <em>ambas<\/em> as estrat\u00e9gias simultaneamente. \u00c9 muito comum que <em>algumas<\/em> features sejam recuperadas diretamente de fontes prim\u00e1rias (caso (1)), enquanto outras s\u00e3o recuperadas de plataformas de streaming.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada estrat\u00e9gia traz vantagens, desvantagens e modos de falha distintos. Vamos discutir isso na pr\u00f3xima parte desta s\u00e9rie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nas pr\u00f3ximas se\u00e7\u00f5es<\/strong>, listaremos as vantagens e desvantagens de usar feature stores, com base na nossa experi\u00eancia no Nubank.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pr\u00f3s<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pr\u00f3: Feature stores mitigam o vi\u00e9s entre treino e infer\u00eancia (training-serving skew)<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Training-serving skew<\/em> refere-se \u00e0s diferen\u00e7as entre como as features s\u00e3o definidas no tempo de treino e no tempo de infer\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essas inconsist\u00eancias quebram a suposi\u00e7\u00e3o de que os dados em tempo de infer\u00eancia seguir\u00e3o uma distribui\u00e7\u00e3o semelhante \u00e0 usada durante o treino. Quando essa suposi\u00e7\u00e3o falha, as m\u00e9tricas de desempenho estimadas durante o treino deixam de refletir o comportamento real do modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O training-serving skew acontece porque a defini\u00e7\u00e3o de features no tempo de treino \u00e9 feita no <strong>ambiente anal\u00edtico<\/strong>, por cientistas de dados, enquanto no tempo de infer\u00eancia muitas vezes \u00e9 feita no <strong>ambiente de produ\u00e7\u00e3o<\/strong>, por engenheiros. Como \u00e9 feita por pessoas diferentes, em ambientes diferentes (frequentemente usando stacks diferentes), diferen\u00e7as nas implementa\u00e7\u00f5es s\u00e3o muito comuns e dif\u00edceis de detectar. Veja um resumo na Figura 4 abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"550\" data-attachment-id=\"36876\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-60\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?fit=1720%2C924&amp;ssl=1\" data-orig-size=\"1720,924\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?fit=1024%2C550&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?resize=1024%2C550&#038;ssl=1\" alt=\"\" class=\"wp-image-36876\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?resize=1024%2C550&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?resize=300%2C161&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?resize=768%2C413&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?resize=1536%2C825&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?resize=1200%2C645&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-12.png?w=1720&amp;ssl=1 1720w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 4 \u2014 Diferen\u00e7as entre tempo de treino e tempo de infer\u00eancia:<\/em><\/strong><em> o trabalho do modelo \u00e9 feito n\u00e3o s\u00f3 por pessoas diferentes, mas tamb\u00e9m em ambientes diferentes e frequentemente usando stacks diferentes. Essas diferen\u00e7as s\u00e3o a principal causa do training-serving skew.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se a feature store conseguir lidar tanto com os dados de tempo de treino quanto com a recupera\u00e7\u00e3o em tempo de infer\u00eancia, ela pode eliminar \u2014 ou pelo menos mitigar \u2014 o training-serving skew, porque as duas defini\u00e7\u00f5es passam a viver no \u201cmesmo lugar\u201d, por assim dizer.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote has-text-align-left is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-align-left wp-block-paragraph\"><em>As feature stores reduzem o risco de training-serving skew porque a l\u00f3gica de features \u2014 no tempo de treino e no tempo de infer\u00eancia \u2014 \u00e9 feita \u201cno mesmo lugar\u201d.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">O monitoramento do training-serving skew tamb\u00e9m fica mais f\u00e1cil e eficiente. Como todos os dados necess\u00e1rios est\u00e3o centralizados em um \u00fanico lugar, o monitoramento pode ser feito pelo pr\u00f3prio time da feature store.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pr\u00f3: Feature stores permitem a descoberta e o re\u00faso de features entre times<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As feature stores normalmente possuem um <em>registro<\/em> ou <em>cat\u00e1logo<\/em> onde as features individuais dos modelos s\u00e3o definidas, descritas e versionadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso pode ser t\u00e3o simples quanto uma pasta dentro de um reposit\u00f3rio comum, uma biblioteca, ou um site interno completo onde os usu\u00e1rios inserem informa\u00e7\u00f5es (veja a Figura 5 para inspira\u00e7\u00e3o).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"678\" data-attachment-id=\"36874\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-59\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?fit=1070%2C708&amp;ssl=1\" data-orig-size=\"1070,708\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?fit=1024%2C678&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?resize=1024%2C678&#038;ssl=1\" alt=\"\" class=\"wp-image-36874\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?resize=1024%2C678&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?resize=300%2C199&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?resize=768%2C508&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-11.png?w=1070&amp;ssl=1 1070w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 5 \u2014 Exemplo de registro de features:<\/em><\/strong><em> UI web de exemplo para um registro de features imagin\u00e1rio. Os usu\u00e1rios podem buscar features existentes e encontrar informa\u00e7\u00f5es sobre elas. Aqui vemos que a feature reported_income est\u00e1 na vers\u00e3o 3, est\u00e1 sendo usada por 4 modelos e tem como dona a BU de Onboarding.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esses registros s\u00e3o o lugar perfeito para que potenciais usu\u00e1rios (ou seja, praticantes de ML) <em>naveguem<\/em> pelas features existentes e descubram aquelas que n\u00e3o sabiam que existiam. Os usu\u00e1rios podem facilmente escolher features existentes para adicionar a um modelo, reduzindo o Time-to-Market (TTM).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dois cen\u00e1rios nos quais registros de features s\u00e3o \u00fateis:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Criar um modelo baseline (v0) de baixo custo usando features existentes:<\/strong> voc\u00ea pode simplesmente procurar algumas features comuns e rapidamente subir um modelo baseline simples para testar uma hip\u00f3tese.<\/li>\n\n\n\n<li><strong>Aumentar um modelo existente:<\/strong> adicionar novas features a modelos existentes \u00e9 uma das tarefas mais comuns nas quais cientistas de dados se envolvem. Os registros de features permitem ver rapidamente quais features j\u00e1 est\u00e3o dispon\u00edveis e o esfor\u00e7o envolvido em adicion\u00e1-las ao seu modelo.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pr\u00f3: Feature stores aumentam o incentivo para a cria\u00e7\u00e3o de features<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As empresas costumam basear a progress\u00e3o de carreira dos funcion\u00e1rios em crit\u00e9rios <strong>objetivos<\/strong>, para alinhar incentivos e promover uma din\u00e2mica de trabalho mais justa. Exemplos de m\u00e9tricas usadas incluem impacto financeiro gerado por um projeto, n\u00famero de pessoas usando uma determinada ferramenta ou plataforma, NPS ou feedback de usu\u00e1rios, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Criar features \u00e9 uma tarefa importante, que costuma ter impacto financeiro na organiza\u00e7\u00e3o. Por isso, os praticantes de ML s\u00e3o incentivados a faz\u00ea-lo, j\u00e1 que isso leva a um maior impacto financeiro que, por sua vez, leva a uma melhor progress\u00e3o de carreira. Esse impacto fica ainda maior se outros times conseguirem usar as features criadas por indiv\u00edduos; portanto, o <strong>incentivo<\/strong> para os praticantes criarem features tamb\u00e9m aumenta. Veja um resumo na Figura 6 abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" data-attachment-id=\"36889\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-63\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?fit=1720%2C922&amp;ssl=1\" data-orig-size=\"1720,922\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?fit=1024%2C549&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?resize=1024%2C549&#038;ssl=1\" alt=\"\" class=\"wp-image-36889\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?resize=1024%2C549&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?resize=300%2C161&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?resize=768%2C412&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?resize=1536%2C823&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?resize=1200%2C643&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-16.png?w=1720&amp;ssl=1 1720w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 6 \u2014 Os incentivos importam:<\/em><\/strong><em> criar features em uma feature store normalmente envolve trabalho extra (\u00e9 preciso criar metadados, conseguir revis\u00f5es de outros times, etc.), mas isso aumenta de forma desproporcional o impacto dessas features, o que, por sua vez, ajuda a progress\u00e3o de carreira dos praticantes. Ganha-ganha.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Incentivos s\u00e3o importantes: as feature stores aumentam o impacto das features que, por sua vez, aumenta o impacto organizacional dos praticantes de ML e os incentivos para cri\u00e1-las.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pr\u00f3: Feature stores centralizam o gerenciamento de features em uma \u00fanica plataforma, aumentando a efici\u00eancia<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Recuperar features de modelo em tempo real a partir de uma feature store (em vez de a partir dos servi\u00e7os de origem de cada feature individualmente) significa que muitas responsabilidades agora podem ser \u201cabstra\u00eddas\u201d na plataforma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Observabilidade<\/strong> \u00e9 um bom exemplo. Uma feature store pode facilmente instrumentar a recupera\u00e7\u00e3o de features com logs e m\u00e9tricas sempre que elas forem solicitadas por um servi\u00e7o upstream. Ela tamb\u00e9m pode gerar dashboards de monitoramento gen\u00e9ricos para que as partes interessadas tenham visibilidade sobre as distribui\u00e7\u00f5es de features e monitorem problemas. Veja uma representa\u00e7\u00e3o visual abaixo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" data-attachment-id=\"36892\" data-permalink=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/image-64\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?fit=1752%2C988&amp;ssl=1\" data-orig-size=\"1752,988\" data-comments-opened=\"1\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?fit=1024%2C577&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?resize=1024%2C577&#038;ssl=1\" alt=\"\" class=\"wp-image-36892\" srcset=\"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?resize=1024%2C577&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?resize=768%2C433&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?resize=1536%2C866&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?resize=1200%2C677&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/image-17.png?w=1752&amp;ssl=1 1752w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center has-small-font-size wp-block-paragraph\"><strong><em>Figura 7 \u2014 Logs e m\u00e9tricas centralizados<\/em><\/strong><em> permitem que os servi\u00e7os clientes obtenham observabilidade \u201cde gra\u00e7a\u201d, sem precisar implementar funcionalidades repetitivas para cada integra\u00e7\u00e3o.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Muitas outras responsabilidades tamb\u00e9m podem ser extra\u00eddas para uma plataforma de feature store, para que os times-clientes n\u00e3o precisem lidar com elas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Documenta\u00e7\u00e3o:<\/strong> toda a documenta\u00e7\u00e3o de features pode ser centralizada em um registro de features (como mostrado na Figura 5), que \u00e9 parte da feature store.<\/li>\n\n\n\n<li><strong>Manuten\u00e7\u00e3o:<\/strong> atualizar o c\u00f3digo das features para corrigir bugs, melhorar a efici\u00eancia e gerenciar o versionamento. Tudo isso fica muito mais eficiente quando feito por um time dedicado e especializado.<\/li>\n\n\n\n<li><strong>Capacidades de depura\u00e7\u00e3o\/troubleshooting:<\/strong> a plataforma pode criar ferramentas centralizadas de visualiza\u00e7\u00e3o e processamento de logs (ex.: visualiza\u00e7\u00e3o de tracing distribu\u00eddo, queries SQL em logs, e mais).<\/li>\n\n\n\n<li><strong>Cache:<\/strong> \u00e9 muito comum que valores de features sejam cacheados para reduzir custos e tempos de processamento. Prover essa camada de cache nos pontos de entrada da plataforma pode ser feito facilmente pelo time da feature store.<\/li>\n\n\n\n<li><strong>Governan\u00e7a\/Auditoria:<\/strong> organiza\u00e7\u00f5es que operam em ambientes altamente regulados (ex.: bancos, sa\u00fade, defesa) frequentemente precisam manter trilhas de auditoria precisas de como os modelos s\u00e3o usados. Alguns exemplos:<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quais foram os valores exatos das features e o score de sa\u00edda para cada inst\u00e2ncia individual pontuada? (ou pelo menos uma amostra disso)<\/li>\n\n\n\n<li>Qual vers\u00e3o exata do modelo estava sendo usada em um momento espec\u00edfico?<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contras<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contra: Feature stores podem se tornar gargalos para times que precisam iterar r\u00e1pido<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Do ponto de vista dos times-clientes, recuperar uma feature de uma plataforma de feature store pode ser mais dif\u00edcil do que faz\u00ea-lo \u201cda maneira usual\u201d (ou seja, consultando diretamente a fonte prim\u00e1ria).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como resultado, times com ciclos de experimenta\u00e7\u00e3o muito curtos podem ver a plataforma como uma fonte de fric\u00e7\u00e3o. Isso geralmente acontece em cen\u00e1rios como:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><em>Provas de conceito (PoCs) r\u00e1pidas<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Um time quer criar uma feature simples para testar uma nova fonte de dados, mas ter que adicion\u00e1-la primeiro \u00e0 FS gera overhead demais e descaracteriza o prop\u00f3sito de uma PoC simples.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><em>Capacidades ainda n\u00e3o dispon\u00edveis na feature store<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Um time precisa de uma funcionalidade customizada (como pr\u00e9-processamento ou p\u00f3s-processamento customizado) que ainda n\u00e3o existe na plataforma. No entanto, o time da FS tem o pr\u00f3prio roadmap e objetivos e n\u00e3o consegue priorizar habilitar essa funcionalidade agora.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 claro que o time da FS pode e <em>deve<\/em> tornar a plataforma o mais simples poss\u00edvel de usar. A facilidade de uso reduz o overhead e, portanto, reduz esses problemas. Aprendemos v\u00e1rias li\u00e7\u00f5es sobre esse tema, como veremos na parte 2 desta s\u00e9rie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contra: Arquiteturas ing\u00eanuas podem introduzir lat\u00eancia adicional<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A implementa\u00e7\u00e3o mais \u201cing\u00eanua\u201d de uma feature store em tempo real \u00e9 como uma \u201ccamada intermedi\u00e1ria\u201d entre os modelos e os servi\u00e7os upstream que possuem as features.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entretanto, essa nova camada <em>vai<\/em> adicionar algum overhead de lat\u00eancia quando comparada ao acesso direto a essas fontes (simplesmente porque chamadas extras de rede ou de banco de dados est\u00e3o sendo adicionadas ao fluxo).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pode ser um problema em cen\u00e1rios em que milissegundos fazem diferen\u00e7a (ex.: High-frequency Trading), mas esses casos s\u00e3o raros. Ainda assim, existem v\u00e1rias estrat\u00e9gias para reduzir esse impacto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Prefetching:<\/strong> refere-se a buscar e cachear as <em>pr\u00f3ximas<\/em> features (antes mesmo que elas sejam solicitadas). Em outras palavras, se sabemos que a feature C \u00e9 sempre solicitada depois das features A e B, podemos calcular C com anteced\u00eancia, de modo que ela j\u00e1 esteja dispon\u00edvel quando <em>for<\/em> solicitada.<\/li>\n\n\n\n<li><strong>Cache local:<\/strong> dados usados para construir features cr\u00edticas podem ser armazenados localmente na plataforma da FS para recupera\u00e7\u00e3o r\u00e1pida (em vez de serem buscados pela rede). Por exemplo, se features relacionadas a transfer\u00eancias forem muito importantes para voc\u00ea, todas as transfer\u00eancias poderiam ser armazenadas em um key-value store local como o Redis, de modo que a recupera\u00e7\u00e3o seja instant\u00e2nea quando\/se as features forem solicitadas.<\/li>\n\n\n\n<li><strong>Busca em paralelo:<\/strong> features independentes podem ser recuperadas em paralelo atrav\u00e9s de multithreading.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Vale notar, no entanto, que nem todas as implementa\u00e7\u00f5es de feature store seguem essa abordagem ing\u00eanua. Na verdade, muitas escolhas de arquitetura podem, de fato, <em>reduzir<\/em> o tempo de busca de features em vez de aument\u00e1-lo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contra: Feature stores podem dificultar a observabilidade e a depura\u00e7\u00e3o para os times-clientes<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Introduzir uma feature store para recuperar features em tempo real geralmente significa que <strong>observabilidade<\/strong> (visualiza\u00e7\u00e3o de logs e m\u00e9tricas) e <strong>depura\u00e7\u00e3o<\/strong> (rastrear a causa raiz de um problema) v\u00e3o mudar. Isso acontece porque a l\u00f3gica de recupera\u00e7\u00e3o agora est\u00e1 abstra\u00edda, e os logs podem n\u00e3o se parecer mais com aquilo a que os times-clientes est\u00e3o acostumados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso muitas vezes cria uma resist\u00eancia inicial \u00e0 ado\u00e7\u00e3o. \u00c9 importante garantir que os times-clientes n\u00e3o percam a capacidade de observar e depurar a recupera\u00e7\u00e3o de features por conta pr\u00f3pria, porque ningu\u00e9m gosta de perder a autonomia ao resolver problemas em produ\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Na pr\u00e1tica, essa resist\u00eancia pode ser significativamente reduzida quando a feature store segue as mesmas conven\u00e7\u00f5es usadas pelos outros servi\u00e7os da organiza\u00e7\u00e3o. Pr\u00e1ticas importantes incluem:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><em>Seguir as conven\u00e7\u00f5es de logging existentes<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Logs e m\u00e9tricas emitidos pela plataforma da feature store devem ser o mais parecidos poss\u00edvel com os usados por outros servi\u00e7os (n\u00e3o-ML): usando as mesmas tecnologias, os mesmos padr\u00f5es, a mesma estrutura, seguindo os mesmos padr\u00f5es de tracing distribu\u00eddo onde aplic\u00e1vel.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><em>Garantir que as necessidades b\u00e1sicas dos usu\u00e1rios sejam atendidas<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Os casos de uso \u201cm\u00ednimos\u201d devem permanecer simples e f\u00e1ceis. Todos os times-clientes devem ser capazes de:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Inspecionar as features de entrada brutas para inst\u00e2ncias individuais pontuadas por um modelo.<\/li>\n\n\n\n<li>Ver m\u00e9tricas de lat\u00eancia (m\u00e9dias e percentis) para features individuais ao longo do tempo.<\/li>\n\n\n\n<li>Ver mensagens de exce\u00e7\u00e3o e stack traces sempre que ocorrerem erros durante a recupera\u00e7\u00e3o de features.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong><em>Incluir todas as dimens\u00f5es necess\u00e1rias em logs e m\u00e9tricas<\/em><\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Logs e m\u00e9tricas devem incluir o nome do modelo chamador e quaisquer outras dimens\u00f5es necess\u00e1rias para distinguir diferentes fluxos de chamada (ex.: chamadas em modo shadow vs. n\u00e3o-shadow).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse \u201ccontra\u201d \u00e9 apenas uma quest\u00e3o durante a ado\u00e7\u00e3o inicial de uma feature store. No longo prazo, uma feature store pode prover capacidades de observabilidade e depura\u00e7\u00e3o at\u00e9 melhores do que servi\u00e7os comuns.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclus\u00e3o<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Feature stores carregam um custo real de implementa\u00e7\u00e3o e ado\u00e7\u00e3o, especialmente para organiza\u00e7\u00f5es que ainda est\u00e3o come\u00e7ando a estruturar seus sistemas de ML em tempo real. Ainda assim, \u00e0 medida que o n\u00famero de modelos, times e casos de uso cresce, os benef\u00edcios de padroniza\u00e7\u00e3o, re\u00faso, governan\u00e7a e efici\u00eancia operacional tendem a superar esse investimento inicial.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ao centralizar a l\u00f3gica de features em uma \u00fanica plataforma, as organiza\u00e7\u00f5es conseguem reduzir problemas como o training-serving skew, simplificar a manuten\u00e7\u00e3o de pipelines de ML, acelerar a experimenta\u00e7\u00e3o e criar sistemas de infer\u00eancia em tempo real mais escal\u00e1veis. Al\u00e9m disso, efeitos de segunda ordem como descoberta de features entre times, observabilidade centralizada e re\u00faso de componentes s\u00e3o amplificados conforme a ado\u00e7\u00e3o cresce.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Na parte 2 desta s\u00e9rie<\/strong>, exploraremos as principais li\u00e7\u00f5es aprendidas ao usar feature stores em produ\u00e7\u00e3o no Nubank. <strong>Fique ligado!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como \u00e9 utilizar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.<\/p>\n","protected":false},"author":178110103,"featured_media":36870,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_eb_attr":"","_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_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2502],"tags":[],"class_list":["post-36873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-science-machine-learning-pt-br"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features - Building Nubank<\/title>\n<meta name=\"description\" content=\"Como \u00e9, na pr\u00e1tica, usar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.\" \/>\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\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Como \u00e9, na pr\u00e1tica, usar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-10T19:26:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-14T17:23:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13-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=\"14 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\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/\"},\"author\":{\"name\":\"Nubank Editorial\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"headline\":\"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features\",\"datePublished\":\"2026-06-10T19:26:27+00:00\",\"dateModified\":\"2026-10-14T17:23:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/\"},\"wordCount\":3062,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1\",\"articleSection\":[\"Data science &amp; Machine Learning\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/\",\"url\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/\",\"name\":\"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1\",\"datePublished\":\"2026-06-10T19:26:27+00:00\",\"dateModified\":\"2026-10-14T17:23:37+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"description\":\"Como \u00e9, na pr\u00e1tica, usar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nu.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1\",\"width\":9482,\"height\":6311},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nu.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features\"}]},{\"@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":"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features - Building Nubank","description":"Como \u00e9, na pr\u00e1tica, usar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.","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\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/","og_locale":"pt_BR","og_type":"article","og_title":"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features - Building Nubank","og_description":"Como \u00e9, na pr\u00e1tica, usar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.","og_url":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/","og_site_name":"Building Nubank","article_published_time":"2026-06-10T19:26:27+00:00","article_modified_time":"2026-10-14T17:23:37+00:00","og_image":[{"width":1024,"height":682,"url":"https:\/\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13-1024x682.jpg","type":"image\/jpeg"}],"author":"Nubank Editorial","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Nubank Editorial","Est. tempo de leitura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#article","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/"},"author":{"name":"Nubank Editorial","@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"headline":"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features","datePublished":"2026-06-10T19:26:27+00:00","dateModified":"2026-10-14T17:23:37+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/"},"wordCount":3062,"commentCount":0,"image":{"@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1","articleSection":["Data science &amp; Machine Learning"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/","url":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/","name":"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features - Building Nubank","isPartOf":{"@id":"https:\/\/building.nu.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#primaryimage"},"image":{"@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1","datePublished":"2026-06-10T19:26:27+00:00","dateModified":"2026-10-14T17:23:37+00:00","author":{"@id":"https:\/\/building.nu.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"description":"Como \u00e9, na pr\u00e1tica, usar feature stores em sistemas de machine learning em tempo real, junto com seus pr\u00f3s e contras.","breadcrumb":{"@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1","width":9482,"height":6311},{"@type":"BreadcrumbList","@id":"https:\/\/building.nu.com\/pt-br\/feature-stores-para-ml-em-tempo-real-por-que-e-quando-centralizar-a-logica-de-features\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nu.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Feature stores para ML em tempo real: por que e quando centralizar a l\u00f3gica de features"}]},{"@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_likes_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-9AJ","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nu.com\/wp-content\/uploads\/2026\/06\/Nubank_Photoshoot_Brasil_-Fotografia_Edu-Vieira-13.jpg?fit=9482%2C6311&ssl=1","_links":{"self":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/36873","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=36873"}],"version-history":[{"count":15,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/36873\/revisions"}],"predecessor-version":[{"id":38360,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/posts\/36873\/revisions\/38360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media\/36870"}],"wp:attachment":[{"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/media?parent=36873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/categories?post=36873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nu.com\/pt-br\/wp-json\/wp\/v2\/tags?post=36873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}