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
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: 1860
Pageviews: 223.4K
Articles: 29
Comments: 15

Expertise

Microservices Expertise Icon

Microservices

  • Articles
  • Comments

Articles

article thumbnail
Rethinking Java CRUDs With Event Sourcing and CQRS Patterns
A short overview of the Event Sourcing and CQRS patterns, applied to Java CRUD applications, illustrated by a simple order management system.
May 26, 2026
· 3,052 Views
article thumbnail
Rethinking Java Web UIs With Jakarta Faces and Quarkus
Do enterprise-grade Java applications really need heavy JavaScript libraries? This is the question to which we'll be trying to answer here.
February 27, 2026
· 2,608 Views · 10 Likes
article thumbnail
Building a Containerized Quarkus API and a CI/CD Pipeline on AWS EKS/Fargate with CDK
This project demonstrates a production-ready approach to deploying a containerized Quarkus API on AWS EKS/Fargate, leveraging Infrastructure as Code through the AWS CDK.
January 8, 2026
· 2,310 Views · 1 Like
article thumbnail
Building a Containerized Quarkus API on AWS ECS/Fargate With CDK
Build production-ready Quarkus API on AWS ECS with CDK Infrastructure as Code. Includes database integration, caching, and comprehensive testing.
November 18, 2025
· 4,814 Views
article thumbnail
AWS CDK: Infrastructure as Abstract Data Types, Part 3
At the end of the first part of this CDK series, we promised to demonstrate how to programmatically manage the S3 bucket created as a part of our stack. Let's see it now.
July 18, 2024
· 8,959 Views · 2 Likes
article thumbnail
AWS CDK: Infrastructure as Abstract Data Types, Part 2
In part 2 of this journey into the CDK world, explore how to use basic building blocks like constructs by taking advantage of Quarkus features.
July 17, 2024
· 8,653 Views · 4 Likes
article thumbnail
AWS CDK: Infrastructure as Abstract Data Types
Begin a series examining CDK as a high-level object-oriented abstraction, defining cloud infrastructure by leveraging the power of programming languages.
June 28, 2024
· 8,345 Views · 4 Likes
article thumbnail
Amazon Bedrock: Leveraging Foundation Models With Quarkus and AWS
Bedrock is the new Amazon service that democratizes the users' access to the most up-to-date Foundation Models (FM) of the highest-ranked AI actors.
April 22, 2024
· 2,486 Views · 1 Like
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
· 6,008 Views · 5 Likes
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
· 8,938 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
· 9,128 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
· 6,944 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
· 12,685 Views · 15 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
· 10,121 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
· 8,997 Views · 7 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
· 10,180 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
· 9,473 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
· 10,861 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
· 14,404 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
· 8,275 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
· 7,390 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
· 12,319 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
· 8,412 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
· 7,170 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
· 3,699 Views · 2 Likes
article thumbnail
Kafka Integration With Spring Cloud
Using Kafka Streams with Spring Cloud Streams.
December 22, 2022
· 6,055 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
· 8,474 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
· 4,111 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
· 8,511 Views · 9 Likes

Comments

Secure Your Spring Boot Apps Using Keycloak and OIDC

Sep 29, 2025 · Gunter Rotsaert

It would have been interesting to separate the authorization service from the application controller, in a dedicated Maven module. As a matter of fact, in production ready application, mixing this two distinct responsibilities is an anti-pattern.

Also, all the operations required to configure the security realm are laborious. Why don't you provide a kcadm script which does that ? And to run it from Maven ?

Last but not least, I'd suggest that you use a docker-compose plugin for Maven such that to perform all the required operations by running `mvn install`.

Amazon Bedrock: Leveraging Foundation Models With Quarkus and AWS

May 22, 2024 · Nicolas Duminil

Thanks for your comments.

Build a Time-Tracking App With ClickUp API Integration Using Openkoda

Apr 10, 2024 · Martyna Szczepanska

This is really a great post demonstrating how to simplify cross cutting concerns representing more than 70% of the enterprise grade applications code. Thanks for sharing Martina.

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

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

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 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook