Engineering With Java: Digest #77
Data frames, JTE, Distributed Tracing, Optimizing Java class and more ...
👋 Java Devs! Welcome to this week’s addition (#77)! I hope you’re all doing great.
This week, we cover essential insights on:
📢 Get actionable Java/Spring Boot insights every week — from practical code tips to real-world use-case based interview questions.
Join 5000+ subscribers and level up your Spring & backend skills with hand-crafted content — no fluff.
First 100 paid subscribers will get the annual membership at $50/year ( 60 already converted to paid, 40 remaining )
Not convinced? Check out the details of the past work
But before we kick off , meme of the week 😊
🗒️ Articles Of The Week (9)
Optimizing Java Class Metadata in Project Valhalla : This technical deep dive explores an optimization in Project Valhalla that reduces JVM memory overhead by allocating the InlineLayoutInfo metadata array only when actually needed for inlined fields, instead of unconditionally for every class. It explains how on‑demand allocation and conditional deallocation cut unnecessary memory use for class instances without inlined value fields, and discusses further opportunities to refine the approach.
Observability Beyond Monitoring: OpenTelemetry and Distributed Tracing : This article explains why traditional monitoring with logs and metrics is no longer sufficient for modern distributed Java systems and highlights OpenTelemetry as the industry‑standard solution for comprehensive observability. It shows how distributed tracing with tools like Jaeger and Zipkin provides causal insights across microservices, and how integrated stacks (Prometheus, Grafana, Loki/Tempo) enable faster debugging and lower operational costs. The piece also outlines a practical roadmap for instrumenting Java applications and building a full observability stack
Using JTE for Type-Safe Templating in Java : This article introduces JTE as a type‑safe templating engine for Java that avoids common pitfalls of string‑based templates by generating classes at compile time, making views safer and easier to refactor. It explains key features like automatic parameter binding, layout support, and fast performance, and shows how JTE integrates with Java web frameworks to simplify template rendering without runtime errors.
Machine Learning Based SPAM Detection Using ONNX in Java : This article demonstrates how to build a machine‑learning based spam detector in Java using ONNX models, showing how to load and infer with a pre‑trained ONNX model via the ONNX Runtime Java API. It covers preprocessing text input, running inference to classify messages, and integrating the model into a Java application for efficient and scalable spam detection.
📢 Level up your system design & interview prep with ByteByteGo — expert-curated guides, visual diagrams & real-world patterns from the authors of the top system design books. Start mastering distributed systems the smart way
They are offering 50% discount on annual sale forever
How to Customize JaCoCo Report Styling in Your Java Project : This article shows how to customize JaCoCo code coverage reports in Java projects by tailoring report styling and content to match team or organizational preferences. It explains how to configure colors, include/exclude filters, and integrate custom CSS and templates so coverage reports are easier to read and align with project standards.
Are You Missing a Data Frame? The Power of Data Frames in Java: This presentation explores adding data frame abstractions to the Java ecosystem, aiming to bring powerful, tabular data processing capabilities similar to those in Python and R into Java. It discusses design considerations, performance trade‑offs, and potential APIs that make large‑scale data manipulation more expressive and efficient without sacrificing Java’s core strengths
Object Lock vs Instance Lock vs Class Lock — The Difference Most Developers Explain Wrong : Instance locks synchronize access per object, allowing different instances to run concurrently, while class locks synchronize at the class level, allowing only one thread across all instances. Static synchronized methods use the class lock, whereas non-static synchronized methods use the instance lock. Choosing the right lock depends on whether shared state belongs to the object or the class
Pragmatica Aether: Let Java Be Java : Promotes evolving Java systems without rewrites by extracting performance-critical parts into independently scalable slices while keeping the monolith intact. It argues that modern Java can remain simple and efficient when tools respect existing architecture instead of forcing microservice complexity.
Why your company’s JSP app isn’t dead - it just needs Spring Boot : Legacy JSP applications are not obsolete; they often continue to deliver real business value but suffer from outdated deployment and configuration models. By introducing Spring Boot around existing JSP code, teams can modernize packaging, dependency management, and operations without a risky full rewrite, enabling gradual evolution toward a cleaner architecture.
🔥 Recently Published In-house Blogs (5)
📢 Checkout Java + Spring Boot + SQL Interview + Certification Prep -
It Includes
Grokking the Java Interview (Vol 1 & 2)
Grokking the Spring Boot Interview
Grokking the SQL Interview
Java SE 17 Developer Certification (1Z0-829) Guide
250+ Spring Framework Certification Practice Questions
▶️ Videos Of The Week (3)
How Netflix Handles 270K RPS: Java Concurrency Lessons : This talk shares practical lessons from solving a real production concurrency problem in Java, highlighting how CPU-bound and IO-bound workloads demand different approaches. It demonstrates the use of parallel streams, executors, and CompletableFuture while exposing common pitfalls like nested parallelism, context loss, and misleading performance gains. The core message is that effective Java concurrency depends on choosing the right abstraction rather than simply adding more threads.
Spring Boot RestClient.Builder Explained (Builder Pattern) : Author clarifies when to use Spring’s auto-configured RestClient builder versus the static factory create method. It shows that the builder integrates with Spring Boot features like observability, message converters, and shared configuration, making it the preferred default, while manual creation suits highly customized cases. The discussion also uses the example to illustrate how the Java builder pattern improves readability, immutability, and object construction flexibility.
Spring AI Prompt Caching: Stop Wasting Money on Repeated Tokens : This video explains prompt caching as a cost-optimization technique for AI applications by reusing static prompt components such as system messages or tool definitions instead of sending them on every request. It demonstrates how Spring AI supports this approach with model-specific cache strategies and shows a practical implementation using Anthropic models. The key takeaway is that caching stable prompt context can significantly reduce token usage and API costs in high-throughput applications.
🧑💻 Jobs Of The Week (5)
Thats all for this week! Thanks for reading this far. If you liked it please share with your network.
Subscribe | Sponsor us | LinkedIn | Twitter
Happy Coding 🚀
Suraj





