adam bien's blog

Load Balancers, GSLB, Project Leyden, CI/CD and main, Cross-Field validation, Agents, Native Images--airhacks.tv livestream 📎

The 2025.05 edition of airhacks.tv with the following topics:
ZB (Zero Dependency Builder) is a simple build tool for Java without external dependencies, Main branch only development works well for most enterprise projects but not when releases are dictated by law, Load balancers like HAProxy and Nginx are recommended for on-premise while cloud load balancers are good for global distribution, JSON-P is a simple way to handle JSON in Java applications, Entity mapping can be done with direct serialization or through DTOs depending on API versioning needs, EJBs can be faster than RequestScoped beans due to object pooling and graph reuse, Quarkus deploys at build time and performs tree shaking for better performance and security, Native images make sense for on-premise deployments but not necessarily for cloud/serverless, AI tools are useful when you can quickly evaluate and accept/reject suggestions, Trunk-based development avoids merge conflicts and keeps the codebase in a functional state, Virtual threads make reactive programming less necessary

and answered questions:

  1. Why should you use static method in an interface why not just use a class?
  2. How are you using AI tools like copilot or cursor?
  3. What is a good load balancer?
  4. How would you map in a project that use BCE an entity post from block?
  5. How would you do if you want a different request for the creation for the post as well?
  6. Would you create the attribute names with static strings?
  7. Are you aware of JSON-P being brought into the JDK?
  8. Would you like to update the benchmark about request scoped and EJBs?
  9. Do you use native images? Why or why not?

...is ready to watch:

Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

Load Balancers, GSLB, Project Leyden, CI/CD and main, jtaccuino, cross-field validation--Questions and Topics For 135th airhacks.tv 📎

Questions and topics for the 2025.06 / 135th edition of airhacks.tv:
  1. Meet zb (zero dependencies builder)
  2. Request for recommendations for load balancer tools for on-premise applications, with previous GSLB experience being limited compared to cloud-based solutions and seeking more feature-rich alternatives.
  3. Use DTOs like PostDto in the Boundary layer for responses to avoid exposing entire JPA entities, and utilize separate DTOs like CreatePostDto for handling creation requests.
  4. Boundary layer manages interaction between application and external systems, handling requests and responses using appropriate DTOs.
  5. Managing CI/CD and collaboration with multiple people using only the "main" branch workflow.
  6. Comparing RequestScoped and EJB performance in Quarkus, questioning necessity of waiting for "EJB Replacement" for performance optimization.
  7. Discussion on whether RequestScoped is currently sufficient without optimizations like pooling and max concurrency that are only available in EJB.
  8. Payara's startup and deployment speed now comparable to Quarkus thanks to Project Leyden and JDK 24 improvements.
  9. Java's overall performance enhancement with JDK 24 reduces performance gap between Quarkus and other Java frameworks.
  10. Project Leyden makes reflection no longer a performance bottleneck, benefiting all Java applications.
  11. Introduction of jtaccuino project - a Jupyter notebook written in JavaFX providing an alternative to Python for datascience.
  12. time travel, topics form the 35th episode:
    Java EE 8 News, Java SDK for Oracle Bare Metal Cloud Services, Handling JPA relationships in CRUD microservice scenarios, The role of RxJava in typical enterprise applications, JAX-RS returning Response vs objects and JSON vs XML, Cross-field entity validation, GPL/LGPL opensource and commercial projects, What is pac4j.org, Transactions CRUD-Services BCE EntityManager and connection sharing, SCM Managing Structuring and organizing microservices, Gradle adoption gradle vs maven, Dealing with setup scripts in Java EE environment, Oracle JDK vs openJDK and licensing, Greetings from Panama jmoordb, The role of Model Driven Architecture in Java EE

Any questions left? Ask now: gist.github.com/AdamBien/74fcde9b08475112003c772ed8384462 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

About Amazon Corretto--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #348 airhacks.fm episode with Volker Simonis (@volker_simonis) about:
Amazon Corretto development, openJDK cooperation and AWS contributions like Project Lilliput and Generational Shenandoah GC
is available for

Building Immutable Release Pipelines with Hashgraph--airhacks.fm 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #347 airhacks.fm episode with Richard Bair (@RichardBair) about:
enterprise use cases with opensource, pure Java blockchain (Hashgraph)
is available for

Accelerating LLMs with TornadoVM: From GPU Kernels to Model Inference--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #346 airhacks.fm episode with Juan Fumero (@snatverk) about:
TornadoVM programming model, hardware reconfiguration, LLM inference, tensor types, and future integration possibilities
is available for

Run Java with Java--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

JavaONE 2025: Real World Lean Java Practices, Patterns, Hacks, and Workarounds 📎

"This interactive session is about practical, no-nonsense coding. We'll explore lean Java 21+ practices and patterns that eliminate bloat and hacks that increase productivity. We will start with structuring and organizing backend monoliths and microservices, cover testing, then move on to decoupling, abstractions, Data Oriented Programming, automation with pure Java."

I used the following example during the session ebank. As a quickstarter for serverless / AWS production projects, I'm using the following template: aws-quarkus-lambda-cdk-plain

LittleHorse Likes Sun--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

134th airhacks.tv: gRPC vs. REST, Quarkus, AI, Performance, Vector DBs--134th airhacks.tv 📎

The 2025.05 / 134th edition of airhacks.tv with the following topics:
REST is about manipulating resources with well-defined HTTP methods (GET, POST, PUT, DELETE) while gRPC is just remote method invocation, Quarkus request-scoped beans are faster than in traditional Java EE due to lack of reflection, Java is 35x faster than Python making it better for AI inference and production, serverless architecture provides cost benefits by paying only for actual usage, RAG (Retrieval Augmented Generation) can be implemented in Quarkus with predefined pipelines, Neo4j works well with LLMs due to its graph structure matching semantic relationships, document categorization with AI can be implemented by passing document chunks to embedding models and using vector databases, Java is getting better with each version with Java 24 being particularly strong, event-driven architecture works well for AI applications by chaining asynchronous operations
...is ready to watch:

See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

Are you nice? :-) Then checkout: the airhacks discord server

JavaOne,JavaLand, GenAI, Langchain4J, Lombok, Rolling Updates, Sync/Async, Serverless--133rd airhacks.tv 📎

The 2025.04 / 133rd edition of airhacks.tv with the following topics:
"Treating LLMs as microservices with APIs for enterprise integration, Java is excellent for model inference and production deployment, Enterprise applications benefit from LLMs as decision support tools rather than decision makers, Langchain4j gaining adoption in the Quarkus enterprise space, Java developers and Python developers form distinct groups with different priorities, Future trend toward smaller dedicated models through model distillation, Java's vector API can be as fast as modest GPUs in some cases, Local LLM inference possible with Java at 10 tokens per second, Java 24 released with gatherers and FFM API, Java One conference was well-organized with great content and networking, JavaLand conference focused on community with keynote about 30 years of Java, Centralized logging now standard in cloud environments, Application-scoped services preferred in serverless architectures, Generic utility packages should be avoided for better cohesion, Preference for JSON-P over JSON-B for better versioning capabilities, Synchronous communication preferred over queuing when possible, Vaadin making a comeback with web components support"
...is ready to watch:

See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

Are you nice? :-) Then checkout: the airhacks discord server

gRPC vs REST, Quarkus, AI Agents & Integration and Local LLMs, RequestScoped Performance--Questions and Topics For 134th airhacks.tv 📎

Questions and topics for the 2025.05 /134th edition of airhacks.tv:
  1. A more straightforward explanation of the difference between gRPC and REST regarding query APIs
  2. Performance of RequestScoped on Quarkus. What about missing EJB features?
  3. What are some interesting applications of AI Agents and automation using Java/Quarkus?
  4. How can one effectively integrate AI Agents and automation with Quarkus?
  5. What advice do you have for someone new to AI Agents and automation who wants to work with Java/Quarkus?
  6. How does Quarkus compare to Low-/No-Code interfaces for AI Agents and automation?
  7. What are the benefits of integrating AI into the correspondence exchange system?
  8. How will AI be used to read, summarise, and categorise documents in the system?
  9. What are the challenges of using a local LLM for document processing?
  10. How does the system ensure cost-effectiveness by using a local LLM?
  11. Time travel, topics from the 34th episode:
    The state of microprofile.io, Motivation for StatusTest, Java EE -- feedback from JUGs, Micro, Swarms and co. the possible killer use case., SPA and JAX-RS. One or multiple projects?, Files filtering and Java FX, REST architecture in 5 mins, Should we keep SOAP?, Personal opinions on article: "Oracle finally targets Java non-payers", CDI with transactions, When should we start to worry about performance?, How we can communicate multiple microservices without share their DTO's?, A lean way to inject properties with Java EE., Java EE vs. Spring, Is it possible to put HTML5 application after the .war has been compiled?, Future of NetBeans, Non blocking IO vs. JDBC, Java EE and scalability, How to connect SPAs with backend efficiently, Java EE vs. Spring Cloud -- how to deal with non functional requirements, Can we start threads in a @Singleton?

Any questions left? Ask now: gist.github.com/AdamBien/df41e421a58f9f8ef0963733f6019725 and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

Apache Storm, Disruptor, JCTools and Linearizability--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #343 airhacks.fm episode with Francesco Nigro (@forked_franz) about:
Apache Storm, Apache Kafka, Disruptor, linearizability, queuing and JCTools
is available for

Opensource and JVM Ports--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #342 airhacks.fm episode with Volker Simonis (@volker_simonis) about:
predator plants, JVM ports, openJDK and the impact of opensource on maintainability
is available for

30 Years of Java--A List of IDEs and Editors 📎

In preparation for the "30 years of Java" keynote at the JavaLand conference, I compiled a list of Java IDEs and editors:

Pure Java Blockchain--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #241 airhacks.fm episode with Richard Bair (@RichardBair) about:
Hedera’s public ledger, the Hashgraph algorithm, consensus mechanism and Java implementation
is available for

30 Years of Java--A List of Application Servers and Middleware Products 📎

In preparation for the "30 years of Java" keynote at the JavaLand conference, I compiled a list of Java application server and middleware products:

The list is also available at: java-archives

JavaOne,JavaLand, GenAI, Langchain4J, Lombok, Rolling Updates--Questions and Topics For 133rd airhacks.tv 📎

Questions and topics for the 2025.04 / 133rd edition of airhacks.tv with the following topics:
  1. JavaOne report
  2. JavaLand report
  3. What stage are people at wrt writing GenAI applications in Java, or integrating AI use cases into their existing Java apps. Are they learning, prototyping, developing, using in production ?
  4. Are you seeing an increase in activity in Langchain4J adoption recently to solve the use cases that might have defaulted to being written in Python?
  5. Any interesting use cases you can share on GenAI applications in Java being worked on in the wild?
  6. 100 episodes back in time:
    Java EE 8 news, Managing logs in central location, About layering: @ApplicationScoped for services?, Why I created an ExceptionFactory--a long time ago., Util packages and classes, Modal windows in JavaFX and background threads, Managing JDBC drivers in Docker, How to run a DB in a container?, To share or not to share a DB, Managing private docker images, DTOs vs JSON-P for partial data transfer, Microservices: queuing choices -- JMS or not, Rolling updates with Java EE and docker, Dealing with bloat: lombok, IDE or what?
    33rd airhacks.tv questions

Any questions left? Ask now: gist.github.com/AdamBien/13fff4f53cf668c9cdfe87ff551bf61a and get the answers at the next airhacks.tv. Some questions are also answered with a short video: 60 seconds or less with Java

Ask questions during the show via twitter mentioning me: https://twitter.com/AdamBien (@AdamBien),using the hashtag: #airhacks or built-in chat at: airhacks.tv. You can join the Q&A session live each first Monday of month, 8 P.M at airhacks.tv

High-Performance Load Testing--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #340 airhacks.fm episode with Francesco Nigro (@forked_franz) about:
about scalability, Universal Scalability Law, Coordinated Omission Problem, performance testing and broken load generators
is available for

#339 Enterprise LLM Integration: Bridging Java and AI in Business Applications--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #339 airhacks.fm episode with Burr Sutter (@burrsutter) about:
practical integration of LLMs with Java and Quarkus in enterprise environments
is available for

JavaOne 2025 Afterglow / Conference Recap 📎

  1. Convenient and nice location: all sessions were in one building - there was enough time to walk between sessions, have a hallway conversation ...and get a coffee.
  2. Speaking of coffee, the standard coffee was good and much better than in the hotel. And great Italian speciality coffees were served by passionate San Francisco baristas. I had my first Cortado at JavaOne.
  3. Excellent presentations by core Java/Oracle engineers. They were well prepared with great content. Talking to (former) Oracle engineers / Java committers has always been my main motivation for attending JavaOne.
  4. Good (great?) food, (too) good local biscuits. Always plenty of drinks and coffee.
  5. Great attention to detail: useful gifts, nice stickers, JavaOne branded seat cushions, Java coasters, JavaOne signposts, badge flags and posters.
  6. Good party venues: the food was good, the venues were nice, and it was easy to make conversation.
  7. JavaOne was also better attended than expected.
  8. Perfect organisation: from the badge to the schedule to the conference app, everything worked perfectly.

I was surprised by the quality of the conference and started asking attendees about their experiences. The answers were all positive.

The most surprising fact was that the majority of people were attending JavaOne for the first time. I asked during my presentation - more than 70% had never been to JavaOne before.

It is hard to find anything that could be improved, other than the size of the rooms. The rooms were either too big or too small. There was a lack of medium sized rooms. I also missed the evening BoF sessions, but my schedule was already packed.

In the event that my proposal is accepted - see you again in the year 2026

From Predator Plants to Concordance with Java--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #338 airhacks.fm episode with Volker Simonis (@volker_simonis) about:
Predator plants, Carnivorous Plant Society, SAP, Sun Microsystems, MaxDB and Java
is available for

The Database Cloud--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #337 airhacks.fm episode with Alvaro Hernandez (@ahachete) about:
running PostgreSQL on Kubernetes and the role of Kubernetes in enterprise projects
is available for

Spring 2025: Conferences, JUGs, Workshops and Livestreams 📎

  1. This is the way: Serverless First With Java on AWS[online event]
    Riyadh Java User Group session 10 March 2025
  2. JavaOne: Real World Lean Java Practices, Patterns, Hacks, and Workarounds [SES1112]
    session JavaOne Redwood Shores March 2025
  3. JavaLand: Keynote: 30 Jahre Java - Hypes, Akronyme, Buzzwords und Paradigmen
    keynote JavaLand Nurburgring 1 April 2025
  4. JavaLand: No Dependencies: Pure Java AI/LLM Integration
    session JavaLand Nurburgring 1 April 2025
  5. Tech Lounge: The Future is Now: Building Enterprise Java Applications in the Cloud
    session / workshop Tech Lounge Eschborn (Frankfurt) 29 April 2025
  6. JAX: The Best of Java Shorts Show: 100 Snippets in 45 Minutes
    session JAX Mainz 6 May 2025
  7. JAX: Pure Java Enterprise AI / LLM Integration Patterns, Hacks und Workarounds
    session JAX Mainz 6 May 2025
  8. geecon: The Best of Java Shorts Show: 100 Snippets in 45 Minutes
    session geecon Krakow May 2025
  9. LLM / GenAI Patterns, Architectures and Use Cases with Java[online event]
    airhacks.live workshop 10 July 2025
  10. Hardcore Serverless Java on AWS[online event]
    airhacks.live workshop 17 July 2025
  11. airhacks.tv Questions and Answers #livestream[online event]
    live streaming show first monday of the month, 8pm CET

From OCCAM and CSP to Java--airhacks.fm podcast 📎

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #336 airhacks.fm episode with Kevlin Henney (@KevlinHenney) about:
distributed computing, actor-based communication, object-oriented programming and Java
is available for

Service Discovery, J2EE to Quarkus, AWS Lambda, System Testing, CI/CD and JFRs--132nd airhacks.tv 📎

The 2025.03 / 132nd edition of airhacks.tv with the following topics:
" J2EE to Quarkus migration can save around 50% memory for on-premise deployments, EJBs are straightforward to migrate but MDBs with two-phase commit are challenging, Change Data Capture like Debezium is an elegant solution for transaction handling, Running JFR all the time in production is a best practice for on-premise deployments, CryoStat provides visualization for JFR events in OpenShift, Quarkus binary executables work well for AWS Lambda but require managing your own runtime, Using AWS-managed Corretto runtime is advantageous for security patching, Application Load Balancer can route to both Fargate and Lambda behind the same URI, Function URL is the cheapest way to run Lambda but HTTP API Gateway provides nicer URIs, Monolithic applications are still valuable when well-structured, Modern Java with records can make JDBC more appealing than ORMs for complex queries, Cloud provider migration is less about Java code and more about mapping equivalent services, System testing should be done by deploying applications to production-like environments and testing them functionally."

...is ready to watch:

See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

Any questions left? Ask now: gist.github.com/AdamBien/728f7aac35f434b6c0a87d192e61f73d