DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Enterprise AI Trend Report: Gain insights on ethical AI, MLOps, generative AI, large language models, and much more.

2024 Cloud survey: Share your insights on microservices, containers, K8s, CI/CD, and DevOps (+ enter a $750 raffle!) for our Trend Reports.

PostgreSQL: Learn about the open-source RDBMS' advanced capabilities, core components, common commands and functions, and general DBA tasks.

AI Automation Essentials. Check out the latest Refcard on all things AI automation, including model training, data security, and more.

Core Badge
Avatar

Nicolas Duminil

DZone Core CORE

Silver Software Architect at Simplex Software

Paris, FR

Joined Sep 2019

http://www.simplex-software.fr

About

Very experienced Java "silver" architect/developer

Stats

Reputation: 701
Pageviews: 142.3K
Articles: 21
Comments: 12

Expertise

Microservices Expertise Icon

Microservices

  • Articles
  • Comments

Articles

article thumbnail
The Power of LLMs in Java: Leveraging Quarkus and LangChain4j
This post attempts to demystify the use of LLMs in Java, with Quarkus and LangChain4j, across a ludic and hopefully original project.
March 28, 2024
· 909 Views · 1 Like
article thumbnail
CRUDing NoSQL Data With Quarkus, Part Two: Elasticsearch
Part 2 of this series focuses on Elasticsearch, a distributed NoSQL database and search engine built on Apache Lucene.
March 12, 2024
· 3,968 Views · 1 Like
article thumbnail
CRUDing NoSQL Data With Quarkus, Part One: MongoDB
This article demonstrates how Quarkus, the supersonic, subatomic Java stack, greatly simplifies the NoSQL data persistence.
February 23, 2024
· 7,280 Views · 1 Like
article thumbnail
Jakarta EE Security: Using Identity Stores
Jakarta EE Security (formerly JSR 375) introduces the notion of identity stores. Here, learn how they are implemented by Jakarta EE platforms like Payara.
January 11, 2024
· 4,938 Views · 1 Like
article thumbnail
From J2EE to Jakarta EE
Discover why Jakarta EE, with the industry-wide adoption of microservices-based architectures, has become one of the most popular Java server-side frameworks.
December 21, 2023
· 9,584 Views · 14 Likes
article thumbnail
Micro Frontends for Quarkus Microservices
Similar to the concept of microservice, the term of micro frontend isn't as well known as the first one. This article aims at demystifying it.
September 29, 2023
· 8,249 Views · 6 Likes
article thumbnail
Microservices With Apache Camel and Quarkus (Part 5)
After learning how to run our microservices in Minikube in part three of this series, let's look at how to do the same in OpenShift.
September 15, 2023
· 7,720 Views · 6 Likes
article thumbnail
Microservices With Apache Camel and Quarkus (Part 4)
After learning how to run our microservices in JVM mode in Part 2 of this series, let's now look at how to do the same in native mode.
June 15, 2023
· 8,994 Views · 7 Likes
article thumbnail
Microservices With Apache Camel and Quarkus (Part 3)
In Parts 1 and 2, you've seen how to run microservices as Quarkus local processes. Let's now look at some K8s-based deployments, starting with Minikube.
June 7, 2023
· 8,273 Views · 2 Likes
article thumbnail
Microservices With Apache Camel and Quarkus (Part 2)
Take a look at a scenario to deploy and run locally the simplified money transfer application presented in part 1 as Quarkus standalone services.
June 3, 2023
· 9,686 Views · 2 Likes
article thumbnail
Microservices With Apache Camel and Quarkus
This post proposes a microservices deployment model based on Camel, using a Java development stack, Quarkus as a runtime, and K8s as a cloud-native platform.
May 31, 2023
· 12,363 Views · 8 Likes
article thumbnail
AWS: Pushing Jakarta EE Full Platform Applications to the Cloud
In this article, readers will learn how to deploy more complex Jakarta EE applications as serverless services with AWS Fargate.
April 20, 2023
· 7,305 Views · 5 Likes
article thumbnail
AWS: Integrating OpenAPI With the Amazon API Gateway and Lambda Functions
Learn how to use OpenAPI to adopt an IaC approach consisting in defining an API in a repeatable and deterministic manner.
April 6, 2023
· 5,791 Views · 4 Likes
article thumbnail
Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative
Readers will learn about Spring Boot and Eclipse MicroProfile, including a comparison of the essential metrics in the same web application and guide code.
March 14, 2023
· 9,248 Views · 9 Likes
article thumbnail
Deploying Java Serverless Functions as AWS Lambda
Learn about SAM (superset of CloudFormation) including some special commands and shortcuts to ease Java serverless code development, testing, and deployment.
January 18, 2023
· 7,482 Views · 4 Likes
article thumbnail
AWS Fargate: Deploying Jakarta EE Applications on Serverless Infrastructures
This article demonstrates how to alleviate the Jakarta EE run-times, servers, and applications, by deploying them on AWS Serverless infrastructures.
January 13, 2023
· 5,961 Views · 6 Likes
article thumbnail
IBM Cloud: Deploying Payara Services on OpenShift
This article demonstrates how to deploy Payara Applications on OpenShift using S2I (Source to Image) Builders.
January 3, 2023
· 2,865 Views · 2 Likes
article thumbnail
Kafka Integration With Spring Cloud
Using Kafka Streams with Spring Cloud Streams.
December 22, 2022
· 5,288 Views · 2 Likes
article thumbnail
A Maven Archetype for Jakarta EE 10 Applications
A demonstration of an archetype that generates a Jakarta EE 10 web applications skeleton and its associated artifacts to be deployed on a Payara 6 server.
December 6, 2022
· 5,906 Views · 2 Likes
article thumbnail
Integration Tests With Arquillian Extensions on the Payara Platform
Arquillian is a classical integration test framework for JVM- based applications. Explore testing with the Payara server using the Arquillian Cube extension.
November 15, 2022
· 3,085 Views · 3 Likes
article thumbnail
[CSF] Using Metrics In Spring Boot Services With Prometheus, Graphana, Instana, and Google cAdvisor
Demonstrating how to instrumentalize and monitor Spring Boot Services on the behalf of a large set of tools. Check out this entry for our Computer Science Fair!
October 23, 2020
· 7,441 Views · 9 Likes

Comments

Architecting Excellence: Guided Insights for Elevated Code Design

Dec 20, 2023 · Otavio Santana

I'll let you with your own contradictions and won't insist any more but, for me, what you're saying, doesn't make sense.

Architecting Excellence: Guided Insights for Elevated Code Design

Dec 20, 2023 · Otavio Santana

"I'm not against interfaces". Well, you seem to be since you're recommending to remove them, as far as they don't have several implementations. You prefer to refactor your code whenever a new concrete implementation of a service is provided, instead of having a default implementation ruled by an interface. But how a new implementation of a service might be provided, given that the service doesn't have an interface and, hence , it isn't even a service ?

As I said, this is really poor design because it lacks abstraction, it lacks the possibility to provide several concrete implementations of the same service and, finally, it lacks extensibility. And since you're recommending to use design patterns, I would be curious to understand how do you think to use the template one, without interfaces ? For memory, a template is an abstract definition of a service, potentially having several concrete implementations.

But just to make sure I correctly understand your point: how do you deal with functional interfaces ? Since you recommend not having single implementation interfaces, you're probably recommending even more not having interfaces without implementations at all. So, how would you write Lambda functions in this case ? Or you're recommending not using Lambda functions neither ?

Architecting Excellence: Guided Insights for Elevated Code Design

Dec 20, 2023 · Otavio Santana

"If a solitary implementation of an interface exists, then consider removal". This is a highly questionable point. You're neglecting the functional interfaces which don't have implementations at all and which instances are represented by Lambda functions.

Additionally, your point isn't correct as having only one implementation at a given moment doesn't mean that other new implementations can't be provided later and removing the interface would lead to a poor design. Think at SPI (Service Provider Interface) pattern which, often, has only a default implementation, allowing other providers to suply their. Think also at CDI alternatives which couldn't exist without initial single implementation interfaces.

Lacking or removing intrrfaces is a very bad practice.

Simplify Java: Reducing Unnecessary Layers and Interfaces [Video]

Dec 03, 2023 · Otavio Santana

One of the fundamental theorem in software design, forged by David Wheeler, says: "Any problem in computer science can be solved by an additional abstraction layer". And abstraction layers are contracts, i.e. interfaces.

Another well known OO principle says: "code against interfaces, not against implementations".

Suppressing interfaces, as shown in the post, and coding against classes, i.e. against implementations, might prevent all the callers from working as soon as the implementation changes.

Another OO rule recommends to never expose implementations and this is, among others, the role of interfaces.

Last but not least, don't forget functional interfaces which are interfaces that specify exactly one one abstract method.

Having unnecessary interfaces isn't good neither but this is not really the problem. The real problem is, more often than not, the lack of interfaces, which leads to a lack of the code abstraction and, consequently, to the infringement of the Liskov principle.

AWS: Integrating OpenAPI With the Amazon API Gateway and Lambda Functions

May 17, 2023 · Nicolas Duminil

Many thanks for your comments.

AWS: Integrating OpenAPI With the Amazon API Gateway and Lambda Functions

May 09, 2023 · Nicolas Duminil

Not sure what this comment is meant to. If you want to write your own article, then please do, be my guest, no need to do it as a comment to the mine. Given that you're not asking any question and you're not bringing any new point in the discussion, I don't know what kind of reaction do you expect from my part.

Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative

Apr 18, 2023 · Nicolas Duminil

Since you don't seem to remember any more what exactly did you ask, please let me refresh your memory.
A quick glance at the exchanges above shows that you've asked "Aren't you comparing Spring Boot vs Quarkus and not Eclipse MP ?". This was your question.
And I'm answering that Eclipse MP is just a specification and, accordingly, when it comes to test it, one could only test a specific implementation of it, as testing Eclipse MP itself wouldn't be possible, since is just a specification. :-)
However, while testing a specific implementation, I'm testing standard Eclipse MP features that all the existent implementations support. I'm not testing any specific Quarkus feature which wouldn't exist in Eclipse MP. In this sense, I'm saying that I'm comparing Spring Boot with Eclipe MP.

Hoping that, this time, I managed to answer your question, such that we could get it to closed.

Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative

Mar 24, 2023 · Nicolas Duminil

Why don't you write your own article to explain all that instead of tire me with these questions ?

Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative

Mar 21, 2023 · Nicolas Duminil

"The only case where you could care about TFR is if you are using lambda". I take it that by "lambda" you mean here "serverless", as there is no reason to isolate the discussion to only AWS. And no, you're wrong, as this is not the only case when TFR is a significant metric. While it might not be a central concern in monolithic applications, for micro-services, in general, not only serverless based micro-services, TFR impacts the cost and the availability of the running applications.

Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative

Mar 20, 2023 · Nicolas Duminil

Who cares about TFR ? Those who care abour content delivery and latency.

Spring Boot vs Eclipse MicroProfile: Resident Set Size (RSS) and Time to First Request (TFR) Comparative

Mar 17, 2023 · Nicolas Duminil

Since the example project doesn't use any Quarkus specific feature, only standard Eclipse MP ones, I'm comparing Spring Boot with Eclipse MP. And yes, Eclipse MP is a standard with multiple implementations, like Quarkus, Helidon, Wildfly, Payara, OpenLiberty and others, while Spring, in general, including Spring Boot, Spring Cloud, etc., is just a Java library which isn't aligned to any standard. Hence, it doesn't make sense to talk about implementations as far as Spring is concerned, because there is noting to implement. Spring provides whatever features and functions its owner thinks as being useful.

Hoping to have clarified the point. Thank you for your comments.

A Maven Archetype for Jakarta EE 10 Applications

Dec 08, 2022 · Nicolas Duminil

Thnaks for your comment.
1. This archetype doesn't aim at demonstrating neither JSP, nor Jakarta Faces with Facelets. It includes a pure HTML page that might be useful in order to test the effectiveness of the WAR deployment.

2. It is not necessary to use Linux shell, you only need to run 2 Maven commands and a Docker one. And since these commands might be too long to be typed in each time, it's preferable to include them in shell scripts. Why Linux scripts ? Because it happens that I'm a Linux user. What should Windows users do ? Given that the Maven and Docker commands are the same whatever the OS is, Windows users can just run the same Maven and Docker commands or slightly ammend the given scripts such that to be Windows compliant.

User has been successfully modified

Failed to modify user

ABOUT US

  • About DZone
  • Send feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: