Tomaz Fernandes's Avatar

Tomaz Fernandes

@tomazfernandes.dev.bsky.social

Bits and bites 🤓

1,843 Followers  |  634 Following  |  2,325 Posts  |  Joined: 27.04.2023  |  2.1539

Latest posts by tomazfernandes.dev on Bluesky

Boa, e porque está indo pro Java agora?

Querendo migrar de stack mesmo? Ou é algo mais pontual?

19.04.2025 02:54 — 👍 2    🔁 0    💬 1    📌 0

Boa, agora que entendi melhor o que você queria, ficou massa.

Um padrão que eu curto pra options é passar um Consumer<Options> como 3o parâmetro, e o Options ter um builder.

Aí ficaria:
target.addEventListener(“submit”, event -> {}, options -> options.xxx().yyy())

Mas é firula, já está ótimo!

18.04.2025 21:34 — 👍 1    🔁 0    💬 1    📌 0

Interface Funcional em Java pode ter apenas um método sem implementação.

Me parece que o que você quer é uma interface comum com 3 métodos.

Se fizer questão de usar lambda, precisa prover implementações default para dois métodos e deixar apenas um pra implementar (que será o lambda).

Faz sentido?

18.04.2025 21:11 — 👍 1    🔁 0    💬 1    📌 0
Processamento Eficiente de Pedidos em Spring
YouTube video by Matheus Leandro Ferreira Processamento Eficiente de Pedidos em Spring

Eu sei que vocês não gostam de vídeos técnicos com #Java Spring, mas esse é o tema de hoje. Quem puder entrar e forçar o like, agradeço! Assim a plataforma me recomenda.

youtu.be/rAnkCj8OefI?...

09.01.2025 12:58 — 👍 28    🔁 8    💬 1    📌 0
Bazel Use the Bazel Open Source Project to scalably build and test massive, multi-language, multi-platform codebases.

No meu trampo a gente usa esse aqui:

bazel.build

É interessante até, depois que você entende a ideia.

18.12.2024 03:14 — 👍 4    🔁 0    💬 1    📌 0

Pra deixar claro - esse tipo de problema em uma escala beeeeeeeeem menor né 😅😅

Mas os problemas em si são esses, log fica excessivo, algo de arquitetura tb é overkill, acho que metrics podem resolver bem.

18.12.2024 00:21 — 👍 2    🔁 0    💬 0    📌 0

Maneiro!

Essa questão me interessa à beça porque não tenho uma solução na ponta da língua.

O que estou pra experimentar agora no início do ano pra esse tipo de problema são as métricas do OpenTelemetry ou similar, já viram isso?

Mais lightweight que logs e não precisa fazer sampling.

17.12.2024 23:53 — 👍 2    🔁 0    💬 1    📌 0
Preview
Title Launch Observability at Netflix Scale Part 1: Understanding The Challenges

Finalmente postamos! Quer entender mais sobre o meu trampo? Leia o nosso post no tech blog da firma :)

netflixtechblog.com/title-launch...

17.12.2024 23:10 — 👍 48    🔁 8    💬 5    📌 0

echo "🎉🎊 PARABÉNS!!! 🎊🎉"

15.12.2024 14:53 — 👍 1    🔁 0    💬 1    📌 0

What if we could convert these offices to apartments and let people work from home? 🤔

14.12.2024 20:25 — 👍 4    🔁 1    💬 1    📌 0
The Best of Java Shorts Show: 100 Snippets in 50 Minutes by Adam Bien
YouTube video by Devoxx The Best of Java Shorts Show: 100 Snippets in 50 Minutes by Adam Bien

Depois de assistir às palestras do Gavin Bierman e do Adam Bien, fiquei ainda mais animado com o futuro do Java. Eles mostraram como a linguagem tá evoluindo e simplificando nossas vidas. Segue o fio 🧵 youtu.be/t03DOhiTPkc?... e www.youtube.com/watch?v=3T0g...

13.12.2024 17:22 — 👍 6    🔁 2    💬 1    📌 0
Continuations: The magic behind virtual threads in Java by Balkrishna Rawool
YouTube video by Devoxx Continuations: The magic behind virtual threads in Java by Balkrishna Rawool

Assisti o vídeo do Balkrishna Rawool sobre continuations e virtual threads no Java, e, sério, foi um mix de devaneios temporários que tive aqui...viagens... youtu.be/HQsYsUac51g?...

13.12.2024 15:54 — 👍 8    🔁 3    💬 1    📌 1

Cc: @vepo.dev @omurilo.dev @marcelojscosta.bsky.social

13.12.2024 17:15 — 👍 1    🔁 0    💬 0    📌 0

Boa, valeu!

Qual schema registry vocês usam?

Tem esses limites tipo 10K versões como o Glue?

13.12.2024 17:14 — 👍 2    🔁 0    💬 1    📌 0

Hehehe, pois é…

Dá uma pesquisada pra ver se mudou, mas da última vez que vi ele cansava sim 🫠

13.12.2024 16:54 — 👍 1    🔁 0    💬 0    📌 0

A opção seria tentar ter um schema só para “OrderEvent” e desambiguar por um field “type”.

O listener teria que ter um “if” pra rotear a mensagem, e o “Deleted” não poderia ter só o id por exemplo, teria que ter todos os outros campos nulos.

O que acham?

13.12.2024 16:53 — 👍 2    🔁 0    💬 4    📌 0

A questão mais uma vez são os limites - no AWS Glue Schema Registry há um limite de 10.000 versões de schema por conta por região.

A conta dev da firma por exemplo tem dois schemas registries, então seriam 5K versões pra cada um.

Parece um número baixo a longo prazo… (+)

13.12.2024 16:53 — 👍 2    🔁 0    💬 1    📌 0

Kafka Questions 2: Schemas

Me parece que o ideal seria ter um schema por tipo de evento: OrderCreatedEvent, OrderUpdatedEvent, OrderDeletedEvent

Desse modo eu consigo enviar e receber as mensagens fortemente tipadas, e posso ter métodos específicos para cada tipo no meu listener.

(+)

13.12.2024 16:53 — 👍 2    🔁 0    💬 1    📌 0
Sign in - Google Accounts

Tenta esse aqui antes:
aistudio.google.com/live

O CGPT “cansa” sim com o advanced voice mode, tem um limite.

O Gemini até onde eu sei não tem limite.

De quebra, você ainda pode apontar a câmera pra alguma coisa e conversar sobre aquilo.

13.12.2024 16:45 — 👍 1    🔁 0    💬 1    📌 0

Sem usar esses recursos, pra comunicação entre MS, o Kafka acaba virando uma fila capenga né, porque não traz muitas vantagens sobre um MQ ou SQS, mas traz uma série de complexidades.

13.12.2024 15:27 — 👍 0    🔁 0    💬 0    📌 0

É, o Kafka tem essa proposta do broker ser o mais simples possível né, faz sentido eles não tratarem isso.

Tem duas features do Kafka que eu gostaria de usar mas que quebram com aumento de partição: ordem e topic compaction.

(+)

13.12.2024 15:27 — 👍 0    🔁 0    💬 1    📌 0

Sim, ou você zera as mensagens do tópico e começa de novo, ou cria um tópico novo.

De ambas as formas não parece algo simples de fazer sem downtime…

13.12.2024 15:21 — 👍 1    🔁 0    💬 0    📌 0

Boa, valeu!

É, aleatório não foi uma palavra bem escolhida. Quis dizer que durante um período, do ponto de vista do consumidor, as mensagens vão vir numa ordem inesperada.

Uma coisa é se preparar pra uma eventual mensagem fora de ordem, outra é se preparar pro caos total.

13.12.2024 15:20 — 👍 1    🔁 0    💬 1    📌 0

Outro ponto importante que o @leandronsp.com trouxe é a granularidade dos MS.

Se a app precisa emitir NF, boleto, e sabe-se lá mais o que, faz sentido cada parte dessas ter um MS separado?

Já trampei em um lugar que cada parte de um fluxo era um MS, trevas total 😓

13.12.2024 15:08 — 👍 2    🔁 0    💬 1    📌 0

Acho que um ponto importante é ver se quando uma mudança de cadastro é realizada a propagação precisa ser imediata, ou se há tolerância.

Poderia avisar para o usuário: “sua alteração foi enviada e estará disponível em breve”. Aí faz uma série de validações, e eventualmente aplica a alteração.

(+)

13.12.2024 15:08 — 👍 0    🔁 0    💬 1    📌 0

Humm, porque você diz isso?

Se pra responder a uma requisição um MS tem que fazer requisições http pra 5 outros MS isso não vai levar a um tempo de resposta maior e menor disponibilidade já que se qualquer serviço desses cair o MS não vai funcionar?

13.12.2024 15:02 — 👍 0    🔁 0    💬 1    📌 0

Hehe, boa!

Pois é, eu entro de férias essa terça, até lá o negócio é não fazer muita marola 😅

Vai dar muito bom isso aí do curso, tu é fera d+, vai ajudar bastante o pessoal 🤓

13.12.2024 14:59 — 👍 1    🔁 0    💬 0    📌 0

Boa, valeu!

Você tem ideia de quantos tópicos tem no total?

Tem tópicos com menos que 5?

13.12.2024 14:43 — 👍 0    🔁 0    💬 1    📌 0

Esclarecendo - vai ficar desordenado até serem processadas todas as mensagens roteadas quando tinham 3 partições.

Passado esse período normaliza com as 4 partições até ter que mexer de novo.

13.12.2024 03:36 — 👍 0    🔁 0    💬 0    📌 0

Massa, bem bacana isso do dev+eficiente!

Como está isso, você já gravou algumas aulas?

Se você não acertar fácil como usar o non-blocking é sinal que eu errei rude hehe.

13.12.2024 03:26 — 👍 1    🔁 0    💬 1    📌 0

@tomazfernandes.dev is following 20 prominent accounts