Jakarta EE and MicroProfile at EclipseCon Community Day 2022

Community Day at EclipseCon 2022 was held in person on Monday, October 24 in Ludwigsburg, Germany. Community Day has always been a great event for Eclipse working groups and project teams, including Jakarta EE/MicroProfile. This year was no exception. A number of great sessions were delivered from prominent folks in the community. The following are the details including session materials. The agenda can still be found here. All the materials can be found here.

Jakarta EE Community State of the Union

The first session of the day was a Jakarta EE community state of the union delivered by Tanja Obradovic, Ivar Grimstad and Shabnam Mayel. The session included a quick overview of Jakarta EE releases, how to get involved in the work of producing the specifications, a recap of the important Jakarta EE 10 release and as well as a view of what’s to come in Jakarta EE 11. The slides are embedded below and linked here.

Jakarta Concurrency – What’s Next

Payara CEO Steve Millidge covered Jakarta Concurrency. He discussed the value proposition of Jakarta Concurrency, the innovations delivered in Jakarta EE 10 (including CDI based @Asynchronous, @ManagedExecutorDefinition, etc) and the possibilities for the future (including CDI based @Schedule, @Lock, @MaxConcurrency, etc). The slides are embedded below and linked here. There are some excellent code examples included.

Jakarta Security – What’s Next

Werner Keil covered Jakarta Security. He discussed what’s already done in Jakarta EE 10 (including OpenID Connect support) and everything that’s in the works for Jakarta EE 11 (including CDI based @RolesAllowed). The slides are embedded below and linked here.

Jakarta Data – What’s Coming

IBM’s Emily Jiang kindly covered Jakarta Data. This is a brand new specification aimed towards Jakarta EE 11. It is a higher level data access abstraction similar to Spring Data and DeltaSpike Data. It encompasses both Jakarta Persistence (JPA) and Jakarta NoSQL. The slides are embedded below and linked here. There are some excellent code examples included.

MicroProfile Community State of the Union

Emily also graciously delivered a MicroProfile state of the union. She covered what was delivered in MicroProfile 5, including alignment with Jakarta EE 9.1. She also discussed what’s coming soon in MicroProfile 6 and beyond, including very clear alignment with the Jakarta EE 10 Core Profile. The slides are embedded below and linked here. There are some excellent technical details included.

MicroProfile Telemetry – What’s Coming

Red Hat’s Martin Stefanko covered MicroProfile Telemetry. Telemetry is a brand new specification being included in MicroProfile 6. The specification essentially supersedes MicroProfile Tracing and possibly MicroProfile Metrics too in the near future. This is because the OpenTracing and OpenCensus projects merged into a single project called OpenTelemetry. OpenTelemetry is now the de facto standard defining how to collect, process, and export telemetry data in microservices. It makes sense that MicroProfile moves forward with supporting OpenTelemetry. The slides are embedded below and linked here. There are some excellent technical details and code examples included.

See You There Next Time?

Overall, it was an honor to organize the Jakarta EE/MicroProfile agenda at EclipseCon Community Day one more time. All speakers and attendees should be thanked. Perhaps we will see you at Community Day next time? It is a great way to hear from some of the key people driving Jakarta EE and MicroProfile. You can attend just Community Day even if you don’t attend EclipseCon. The fee is modest and includes lunch as well as casual networking.

FOSDEM 2022 Conference Report

FOSDEM took place February 5-6. The European based event is one of the most significant gatherings worldwide focused on all things Open Source. Named the “Friends of OpenJDK”, in recent years the event has added a devroom/track dedicated to Java. The effort is lead by my friend and former colleague Geertjan Wielenga. Due to the pandemic, the 2022 event was virtual once again. I delivered a couple of talks on Jakarta EE as well as Diversity & Inclusion.

Fundamentals of Diversity & Inclusion for Technologists

I opened the second day of the conference with my newest talk titled “Fundamentals of Diversity and Inclusion for Technologists”. I believe this is an overdue and critically important subject. I am very grateful to FOSDEM for accepting the talk. The reality for our industry remains that many people either have not yet started or are at the very beginning of their Diversity & Inclusion journey. This talk aims to start the conversation in earnest by explaining the basics. Concepts covered include unconscious bias, privilege, equity, allyship, covering and microaggressions. I punctuate the topic with experiences from my own life and examples relevant to technologists. The slides for the talk are available on SpeakerDeck. The video for the talk is now posted on YouTube.

Jakarta EE – Present and Future

Later the same day, I delivered my fairly popular talk – “Jakarta EE – Present and Future”. The talk is essentially a state of the union for Jakarta EE. It covers a little bit of history, context, Jakarta EE 8, Jakarta EE 9/9.1 as well as what’s ahead for Jakarta EE 10. One key component of the talk is the importance and ways of direct developer contributions into Jakarta EE, if needed with help from the Jakarta EE Ambassadors. Jakarta EE 10 and the Jakarta Core Profile should bring an important set of changes including to CDI, Jakarta REST, Concurrency, Security, Faces, Batch and Configuration. The slides for the talk are available on SpeakerDeck. The video for the talk is now posted on YouTube.

I am very happy to have had the opportunity to speak at FOSDEM. I hope to contribute again in the future.

JConf Peru 2021 Conference Report

JConf Peru 2021 took place November 27th. This was the third time the event was held and due to the pandemic, the 2021 event was virtual and free. I am very proud to have participated as an invited speaker – the JConf series is an admirable effort by the Spanish speaking Java community to hold world-class events. My friend and Peru JUG leader Jose Diaz and his wife Miryan Ramirez have worked hard to make JConf Peru a reality. Jakarta EE had a strong presence at the event including talks on Quarkus and TomEE. I delivered three talks at the conference focused on Jakarta EE and Azure.

Powering Java on Azure with Open Liberty and OpenShift

Early in the morning I delivered my slide free talk titled “Powering Java on Azure with Open Liberty and OpenShift”. The material covers the key work Microsoft and IBM is doing to enable Jakarta EE, MicroProfile, Open Liberty and OpenShift on Azure. I demo in real time how to stand up an OpenShift cluster on Azure quickly and deploy a realistic Java EE/Jakarta EE/MicroProfile application that integrates with some services on the cloud such as a database. The essential material for the talk is available on the Microsoft documentation site as a how-to guide. A recording of the talk is now available on YouTube.

Effective Kubernetes for Jakarta EE and MicroProfile Developers

Towards mid-day, I delivered another entirely slide-free talk – “Effective Kubernetes for Jakarta EE and MicroProfile Developers”. The talk covers some of the key things Jakarta EE and MicroProfile developers need to know while using Kubernetes. This includes:

  • How Kubernetes primitives (such as deployments, services and ingress controllers) align with application server administration, clustering, auto-scaling, auto-discovery, and load-balancing.
  • How to add self-healing capabilities using Kubernetes probes and monitoring with open source tools like Prometheus/Grafana.
  • How Kubernetes can be extended using Operators to effectively manage application server clusters.
  • How the CI/CD pipeline of your application can be adapted to Kubernetes.

A recording of the talk is now available on YouTube.

All the material for the talk is available in self-paced workshop format on GitHub. The material will take you about a day to complete end-to-end (please reach out if you need any help).

Why Jakarta EE Developers are First-Class Citizens on Azure

I wrapped up the conference by delivering my talk titled “Why Jakarta EE Developers are First-Class Citizens on Azure”. This talk covers all the work Microsoft is doing by partnering with companies like Oracle, IBM and Red Hat to support Jakarta EE developers on Azure. This includes fully enabling runtimes such as WebLogic, WebSphere Traditional, WebSphere Liberty, Open Liberty and JBoss EAP on virtual machines, the Azure Kubernetes Service (AKS) and App Service (the premier PaaS platform for Azure). I also cover important work such as supporting JMS in Azure Service Bus as a well as the Jakarta EE on Azure roadmap.

There is a brief end-to-end demo that is part of the talk. You can run the demo yourself using step-by-step instructions available on GitHub to get a feel for how the Jakarta EE on Azure experience looks like (please reach out if you need help). The slides for the talk are available on Speaker Deck. The video for the talk is now posted on YouTube.

It is worth reminding that myself and my team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Beautiful Peru

Peru is a country rich in heritage and natural beauty. It is one of the six cradles of civilization and the center of the mighty Inca entire. I am proud to say I got to see a bit of this amazing country as part of my brief trip for the first JConf Peru. Just check out the album below of photos I took (click this link to view the album if the embedded slideshow is not working)!

All in all, I am happy to have had the opportunity to speak at JConf Peru again. I am very glad the event continued in virtual format despite the pandemic. I hope to speak there again and hopefully visit beautiful Peru again in the future.

DOAG 2021 Conference Report

The DOAG 2021 conference took place November 16-18. This is the long running annual event organized by the German Oracle technology user community – one of the largest in the world. Due to the pandemic, the 2021 event was virtual. There is always some Java related content in the event, including on Jakarta EE, WebLogic, Coherence and Helidon. I delivered two talks on Jakarta EE, WebLogic and Azure.

Running WebLogic on Azure Kubernetes and Virtual Machines

On the second day of the conference, I had the relatively rare opportunity to deliver a talk titled “Running WebLogic on Azure Kubernetes and Virtual Machines”. The material covers the key work Microsoft and Oracle is doing to power WebLogic on Azure. The work includes tools, solutions, guides, samples and scripts to fully enable WebLogic on both Azure Virtual Machines as well as the Azure Kubernetes Service (AKS). The solutions support simple use cases such easily creating a single working WebLogic instance. They also support common use cases such as clustering, load-balancing, failover, disaster recovery, database connectivity, caching via Coherence, consolidated logging via ELK, and Azure Active Directory integration. The introductory session includes demos for VMs and AKS. I also cover the longer-term roadmap for WebLogic on Azure. The slides for the talk are available on SpeakerDeck.

It is worth reminding that I and my team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Jakarta EE – Present and Future

On the last day of the conference, I delivered my fairly popular talk – “Jakarta EE – Present and Future”. The talk is essentially a state of the union for Jakarta EE. It covers a little bit of history, context, Jakarta EE 8, Jakarta EE 9/9.1 as well as what’s ahead for Jakarta EE 10. One key component of the talk is the importance and ways of direct developer contributions into Jakarta EE, if needed with help from the Jakarta EE Ambassadors. Jakarta EE 10 and the Jakarta Core Profile should bring an important set of changes including to CDI, Jakarta REST, Concurrency, Security, Faces, Batch and Configuration. The slides for the talk are available on SpeakerDeck.

I am very happy to have had the opportunity to speak at the DOAG conference. I hope to participate again in the future.

EclipseCon 2021 Conference Report

EclipseCon 2021 took place October 25-28. EclipseCon has long been a world-class conference for all things Eclipse. With the Java EE transition to the Eclipse Foundation, EclipseCon has become a truly significant event for Jakarta EE and MicroProfile developers. Due to the pandemic, the 2021 event was virtual (and free!). Jakarta EE unsurprisingly had a strong presence at the conference with talks on Jakarta EE 9.x, Jakarta EE 10, MicroProfile 4.x, MicroProfile 5, Jakarta Security, Jakarta Concurrency, Jakarta REST, Jakarta NoSQL and MicroProfile GraphQL from speakers such as Tanja Obradovic, Ivar Grimstad, Josh Juneau, Otavio Santana, Emily Jiang, Steve Millidge, Arjan Tijms, Werner Keil, Ed Burns, Rudy De Busscher and Graham Charters. I delivered two talks and participated in a panel at the conference focused on Java, Jakarta EE and Azure. I also helped organize Community Day along with Werner Keil and Petr Aubrecht.

EclipseCon 2021 - HORIZON CLOUD

Jakarta EE at Community Day

Community Day was held on October 25th – the day before the start of the main conference. Community Day has always been a great event for Eclipse working groups and project teams. It has become a unique space for some very focused, unique, forward-looking content on Jakarta EE and MicroProfile. The sessions are intended not only for learning, but also for the community to actively engage with some key leaders.

This year we had some great sessions on Jakarta EE, MicroProfile, Jakarta Security, Jakarta Concurrency, Jakarta REST and Jakarta NoSQL presented by Tanja Obradovic, Ivar Grimstad, Will Lyons, Emily Jiang, Arjan Tijms, Steve Millidge, Andy McCright and Otavio Santana. You will find session abstracts, speaker profiles and more here.

Powering Java on Azure with Open Liberty and OpenShift

On the first day of the main conference, I and Graham Charters of IBM delivered a mostly slide free talk titled “Powering Java on Azure with Open Liberty and OpenShift”. The material covers the key work Microsoft and IBM is doing to enable Jakarta EE, MicroProfile, Open Liberty and OpenShift on Azure. We demo in real time how to stand up an OpenShift cluster on Azure quickly and deploy a realistic Java EE/Jakarta EE/MicroProfile application that integrates with some services on the cloud such as a database. The essential material for the talk is available on the Microsoft documentation site as a how-to guide. A recording of the talk is now available on YouTube.

It is worth reminding that myself, Ed Burns and our team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Earlier the same day I participated in a panel titled “Java is the ideal language for cloud-native applications” alongside YK Chang, Ed Burns, Emily Jiang, Neil Patterson, Vijay Sundaresan, Ivar Grimstad, Arjan Tijms and Alasdair Nottingham.

Effective Kubernetes for Jakarta EE and MicroProfile Developers

On the second day of the main conference, I delivered my entirely slide-free talk – “Effective Kubernetes for Jakarta EE and MicroProfile Developers”. The talk covers some of the key things Jakarta EE and MicroProfile developers need to know while using Kubernetes. This includes:

  • How Kubernetes primitives (such as deployments, services and ingress controllers) align with application server administration, clustering, auto-scaling, auto-discovery, and load-balancing.
  • How to add self-healing capabilities using Kubernetes probes and monitoring with open source tools like Prometheus/Grafana.
  • How Kubernetes can be extended using Operators to effectively manage application server clusters.
  • How the CI/CD pipeline of your application can be adapted to Kubernetes.

A recording of the talk is now available on YouTube.

All the material for the talk is available in self-paced workshop format on GitHub. The material will take you about a day to complete end-to-end (please reach out if you need any help).

I am very happy to have had the opportunity to contribute to EclipseCon, especially Community Day. I hope to participate again in the future.

JCON 2021 Conference Report

JCON 2021 took place October 5-8. This is a world-class conference run by the German JAVAPRO magazine. Due to the pandemic, the 2021 event was virtual. Jakarta EE had a strong presence at the conference with talks on the Jakarta EE Core Profile, Jakarta EE Security, Jakarta NoSQL, MicroProfile 4, Quarkus, Helidon and Open Liberty from speakers such as Ivar Grimstad, Adam Bien, Otavio Santana, Emily Jiang, Werner Keil, Ed Burns, Grace Jansen, Rudy De Busscher and Graham Charters. I delivered three talks and a workshop at the conference focused on Java, Jakarta EE and Azure.

JCON Online 2021 im Echtzeit-Stream

A Freakonomic Take on Open Standards and Jakarta EE

On the first day of the conference I delivered one of my most favorite talks – “A Freakonomic Take on Open Standards and Jakarta EE”. I am very grateful JCON decided to accept this talk. This isn’t a talk about APIs or features but rather some of the much more foundational reasons I have chosen to contribute to the Jakarta EE technology set for such a long time. It speaks to the importance of open standards like Jakarta EE in maintaining the long-term competitive health of an ecosystem. The talk looks at this topic through the lens of well-established economic theories on competition, monopoly power, the network effect, innovation, open source and open standards.

The slides for the talk are available on Speaker Deck. The video for the talk is now posted on YouTube.

How Microsoft Learned to Love Java

On the second day of the conference I delivered my Java on Azure focused talk “How Microsoft Learned to Love Java”. The talk is essentially a tour of the broad range of services, tools and APIs Microsoft provides around Azure to better serve Java developers. I also briefly discuss the Java on Azure roadmap at a high level. The slides for the talk are available on Speaker Deck. There is a brief end-to-end demo that is part of the talk. You can run the demo yourself using step-by-step instructions available on GitHub to get a feel for how the Java on Azure experience looks like (please reach out if you need help). The video for the talk is now posted on YouTube.

Effective Kubernetes for Jakarta EE and MicroProfile Developers

I finished the conference by delivering my entirely slide-free workshop – “Effective Kubernetes for Jakarta EE and MicroProfile Developers”. The workshop covers some of the key things Jakarta EE and MicroProfile developers need to know while using Kubernetes. This includes:

  • How Kubernetes primitives (such as deployments, services and ingress controllers) align with application server administration, clustering, auto-scaling, auto-discovery, and load-balancing.
  • How to add self-healing capabilities using Kubernetes probes and monitoring with open source tools like Prometheus/Grafana.
  • How Kubernetes can be extended using Operators to effectively manage application server clusters.
  • How the CI/CD pipeline of your application can be adapted to Kubernetes.

All the material for the talk is available in self-paced workshop format on GitHub. The workshop will take you about a day to complete end-to-end (please reach out if you need any help).

On the same day, my Microsoft colleague Ed Burns and Graham Charters of IBM delivered the workshop titled “Running Your Enterprise Java with Open Liberty on Azure Red Hat OpenShift”. The material covers the key work Microsoft and IBM is doing to enable Jakarta EE, MicroProfile, Open Liberty and OpenShift on Azure. The essential material for the workshop is available on the Microsoft documentation site as a how-to guide.

It is worth reminding that myself, Ed Burns and our team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

All in all, I am happy to have had the opportunity to speak at JCON. I hope to speak there again in the future.

Why You Should Join EclipseCon 2021 Community Day

EclipseCon 2021 Community Day is on Monday, October 25 15:00 to 21:00 CET (the day before the start of the main EclipseCon conference). Community Day at EclipseCon has always been a great event for Eclipse working groups and project teams. This year both EclipseCon and Community Day is virtual and free. Space for Community Day is limited, so please register and save your spot soon.

We have a packed agenda centered on the Jakarta EE, MicroProfile and Cloud Native Java communities. If there is a set of very focused sessions you should attend on these topics, the agenda offers the one place this year to do so. The sessions are intended not only for learning, but also for the community to actively engage with some key leaders.

Myself, Werner Keil and Petr Aubrecht are organizing on behalf of the community. We are grateful to have a very strong line-up both in terms of speakers and content. Below is a very good snapshot. Please note that all times are Central European Time (CET).

SessionTimeSpeakers
Jakarta EE Community State of the Union10/25/2020
15:00 – 15:50
Tanja Obradovic and Ivar Grimstad
MicroProfile Current and Future10/25/2020
16:00 – 16:50
Emily Jiang
What’s Coming to Jakarta Security10/25/2020
17:00 – 17:50
Arjan Tijms
Jakarta Concurrency Futures10/25/2020
18:00 – 18:50
Steve Millidge
Jakarta REST: Looking Ahead 10/25/2020
19:00 – 19:50
Andy McCright
Jakarta NoSQL and the Future of Polyglot Persistence in Java 10/25/2020
20:00 – 20:50
Otavio Santana

Tanja Obradovic and Ivar Grimstad from the Eclipse Foundation will be providing a good overview of the current status of Jakarta EE in Jakarta EE Community State of the Union. This will include Jakarta EE 9, Jakarta EE 9.1 as well as Jakarta EE 10. If there is one session to learn about Jakarta EE status, get involved and ask questions, this session is it.

IBM’s Emily Jiang will be doing the same thing for MicroProfile in MicroProfile Current and Future. So if you want to know about MicroProfile, this is the session you should make a point to attend. Emily will cover MicroProfile 4.0, MicroProfile 4.1 and MicroProfile 5.0.

The Security API is likely be to a key component of Jakarta EE 10. In What’s Coming to Jakarta Security, Arjan Tijms will be covering the likely changes as well as how you can contribute.

Steve Millidge will do the same thing for the Concurrency API in Jakarta Concurrency Futures. Similar to the Security API, the Concurrency API will play an important role in Jakarta EE 10.

REST continues to be one of the more active and popular technologies in the Jakarta EE family. In Jakarta REST – Looking Ahead, IBM’s Andy McCright will cover some of the important changes you can expect in the REST API for Jakarta EE 10.

Last but certainly not least, Otavio Santana will provide an overview of the new NOSQL API in Jakarta NoSQL and the Future of Polyglot Persistence in Java. He will overview the API, discuss what is available right now, what is coming and how you can contribute.

For further details, please look here. You will find session abstracts, speaker profiles and more. We have worked hard to organize a strong agenda on your behalf and we hope you will join us.

Please note these views are my own and do not reflect the views of Microsoft as a company.

Jakarta EE/MicroProfile Alignment Survey Results!

As you are likely aware, Java EE has transitioned to Open Source governance in the Eclipse Foundation as Jakarta EE. MicroProfile has been moving forward as an independent initiative to optimize enterprise Java for microservices architectures. The Cloud Native for Java (CN4J) Alliance has recently been formed to promote better alignment between Jakarta EE and MicroProfile.

One of the key issues to sort out is how Jakarta EE can consume MicroProfile specifications (such as MicroProfile Configuration). There are several alternatives as to how this could be done. These alternatives were put into a survey for the community to weigh in. In addition to choosing the option respondents believe to be best, they were able to provide comments justifying their preferred alternative. The results of the survey are summarized here. The results have been shared with the CN4J community and key decision makers.

Survey Results

More than 200 people filled out the survey. Even more remarkably, there were more than 50 comments representing the voice of the community. A fairly strong majority (57.73%) of developers want some MicroProfile specifications to move to Jakarta EE including the namespace.

Jakarta EE/MicroProfile survey results

The results are similar to what earlier surveys have indicated and congruent with the official Jakarta EE Ambassadors joint position. It is remarkable how consistent the community view has been, even over a period of time.

The Voice of the Community

It is impossible to do justice to all the people that provided comments. Each one of the comments is invaluable. The following is a decent sampling representing the majority opinion.

“MicroProfile should evolve APIs that eventually get absorbed by Jakarta EE. MicroProfile applications should eventually be able to run with pure Jakarta EE APIs.”

“Moving MicroProfile specs into Jakarta EE including namespace will make clear where the longer term specs are maintained. Also, for MicroProfile users it’s a very easy migration path.”

“I think no matter which of these options is chosen there is going to be an effect on either end users, or developers. Therefore, I would rather make the large upfront breaking changes all at once and merge the two into the same namespace. Then, have consistency going forward.”

“I would see the movement from org.eclipse.microprofile to the jakarta namespace as a sign of maturity (and success) for MicroProfile.”

“Option A2 has fewer cons and is more end user friendly.”

“Using a different namespace makes it clear what version and expectations (e.g. backward compatibility) the user is making. Moving without a namespace is confusing.”

“The aim of a specification should always be to make something as simple and clear as possible. The entry barriers and opportunities for error for new and inexperienced developers must be as low as possible. An inconsistent namespace or even the possibility of circular dependencies make the use simply too complicated and difficult. At the end of the day, it’s all about the economic and productive development of applications.”

“Move some MicroProfile specifications (e.g. MP Config when its stable) to Jakarta EE including the namespace.”

Source Data

I really hope the results help pave the way for sensible decisions on Jakarta EE and MicroProfile alignment. For me, gathering input and listening to people that are not necessarily involved in the lower level details of specification development is extremely important.

The Eclipse Foundation very graciously ran the survey and shared the source data publicly. Reading all the comments in full is especially insightful.

Your Input Needed to Determine Path for Jakarta EE/MicroProfile Alignment

As you are likely aware, Java EE has transitioned to Open Source governance in the Eclipse Foundation as Jakarta EE. MicroProfile has been moving forward as an independent initiative to optimize enterprise Java for microservices architectures. The Cloud Native for Java (CN4J) Alliance has recently been formed to promote better alignment between Jakarta EE and MicroProfile.

One of the key issues to sort out is how Jakarta EE can consume MicroProfile specifications (such as MicroProfile Configuration). There are several alternatives as to how this could be done. The following is a brief analysis of the advantages and disadvantages of each approach, as discussed in the CN4J community thus far. At the end of the analysis, there is a survey you should weigh in on. In addition to choosing the option you believe to be best, it is very valuable to provide comments justifying your preferred alternative. The results of the survey will be shared with the CN4J community and key decision makers.

Jakarta EE and MicroProfile Context

Both Jakarta EE and MicroProfile produce specifications that are intended for and used in cloud native and microservices use cases. In particular, MicroProfile has a specific focus on meeting the needs of cloud native and microservices use cases. MicroProfile also produces comparatively faster platform releases (roughly once a quarter) while the Jakarta EE release cadence is slower (the likely long term target being approximately once a year).

Jakarta EE currently provides relatively strong guarantees for backward compatibility for all specifications. MicroProfile does not currently guarantee backwards compatibility for all specifications, but does produce production-ready specifications that have demonstrated real world adoption. This characteristic enables MicroProfile to focus on innovation in emerging areas while Jakarta EE focuses on more conservative use-cases and stability best suited to the largest enterprises. While MicroProfile specifications have on occasion needed to break backwards compatibility, this decision is made with due care for end users.

MicroProfile specifications depend on one or more Jakarta EE specifications while Jakarta EE does not currently have any dependencies on MicroProfile.

Option A1: Move MicroProfile specifications to Jakarta EE without changing namespaces (so no need to change namespace from org.eclipse.microprofile.* to jakarta.*). Nonetheless, the Maven coordinates for MicroProfile specifications will move to Jakarta. Further evolution will take place under the Jakarta EE working group.

Pro:

  • There is no need for existing MicroProfile users to switch namespaces.
  • This gives MicroProfile due credit going forward for bringing a specification into Jakarta EE.
  • No API duplication between MicroProfile and Jakarta EE.
  • There is only the existing one-way dependency between MicroProfile and Jakarta EE.
  • Some users may wish for greater convergence of MicroProfile into Jakarta EE. This option satisfies this desire to some extent.

Con: 

  • Lack of namespace consistency for Jakarta EE users otherwise not using MicroProfile.
  • Some users may perceive this to mean only Jakarta EE is where production ready specifications are available.
  • It is not immediately obvious to a casual user using both Jakarta EE and MicroProfile in the same application which MicroProfile APIs belong to the MicroProfile working group and which MicroProfile specification belongs to the Jakarta EE working group. This may lead to brand confusion for some users as well as mismatched expectations with regards to characteristics such as backwards compatibility and release cadence.

Option A2: Move MicroProfile specifications to Jakarta EE including the namespace. In this case, the namespaces will be changed from org.eclipse.microprofile.* to jakarta.*. Further evolution will take place under the Jakarta EE working group. No more work will be done in the MicroProfile working group to further evolve a specification once it is moved.

Pro: 

  • Namespace consistency for Jakarta EE users otherwise not using MicroProfile.
  • No API duplication between MicroProfile and Jakarta EE.
  • There is only the existing one-way dependency between MicroProfile and Jakarta EE.
  • It is immediately obvious to a user using both Jakarta EE and MicroProfile in the same application which specifications belong to the MicroProfile working group and which specifications belong to the Jakarta EE working group. This includes expectations of characteristics such as backwards compatibility and release cadence.
  • Some users may wish for greater convergence of MicroProfile into Jakarta EE. This option satisfies this desire to some extent. This may include a possible preference for the jakarta.* namespace, which is more generic – as opposed to the org.eclipse.microprofile namespace, which may imply a focus on microservices.

Con: 

  • Existing MicroProfile users will need to switch namespaces in order to take advantage of newer versions of moved specifications. Similarly, implementers will need to put effort towards migration, including potentially maintaining two separate work streams at least in the short term.
  • Some users may perceive this to mean only Jakarta EE is where production ready specifications are available.

Option B: Reference MicroProfile specifications in Jakarta EE and not move MicroProfile specifications. Jakarta EE will not duplicate any referenced specifications and MicroProfile specifications will only be evolved under the MicroProfile working group.

Pro:

  • No API duplication between MicroProfile and Jakarta EE.
  • No migration effort is needed for any users or implementors, while Jakarta EE can still use the specification.
  • Some users may wish for MicroProfile and Jakarta EE to remain as separate as possible. This option satisfies this desire to some extent.

Con:

  • Lack of namespace consistency for Jakarta EE users otherwise not using MicroProfile.
  • It is not immediately obvious to a user using both Jakarta EE and MicroProfile in the same application which MicroProfile specifications are referenced by Jakarta EE and which are not (and as a result have different expectations with regards to characteristics such as backwards compatibility).
  • The referenced MicroProfile specification may wish to break backwards compatibility at some point in its evolution while Jakarta EE does not. Additional efforts will need to be made to address such mismatches.
  • This introduces a circular dependency between Jakarta EE and MicroProfile. This can make matching release cadences, dependencies, features and collaboration more difficult, including potentially unexpected challenges for end users. The following is one possible example illustrating version dependency mismatches: MicroProfile m2 aligns with Jakarta EE j1, while Jakarta EE j1 aligns with MicroProfile m1. MicroProfile Configuration c2 is included in MicroProfile m2. Jakarta Persistence p1 relies on MicroProfile Configuration c1 in MicroProfile m1 because Jakarta EE j1 was released before MicroProfile m2. An application wants to use both Jakarta EE j1 and MicroProfile m2 together. Which MicroProfile Configuration version will the application end up with? If MicroProfile Configuration c2 in MicroProfile m2 was loaded, Jakarta Persistence p1 may not work with MicroProfile m2 as expected when tested and released via the Jakarta EE j1 compatibility test kit/TCK).
  • If Jakarta EE integration specific changes are required in MicroProfile specifications, it will require coordination across working groups in a timely fashion with regards to dependencies, release cadence and features.

Option C: Create Jakarta EE versions of MicroProfile specifications. In this case, Jakarta EE and MicroProfile will develop similar features in parallel.

Pro:

  • MicroProfile and Jakarta EE can independently evolve features as they best see fit.
  • End users can mix and match MicroProfile and Jakarta EE as they best see fit. Implementations may do the same.

Con: 

  • Duplication of effort and resources across Jakarta EE and MicroProfile. The duplication of effort will likely also extend to implementations.
  • End users will need to choose between equivalent features in Jakarta EE and MicroProfile.
  • MicroProfile and Jakarta EE will very likely be seen as directly competing efforts, leading to further confusion.

Voice Your Opinion!

Each of the alignment approaches have advantages and disadvantages. While decision makers might guess what the right tradeoffs for end users and the ecosystem are, you have a role in providing feedback on what works best for you. Please take a moment to fill out this short survey and provide your feedback now. The results of the survey will be shared with decision makers. You should also continue to stay engaged by subscribing to the CN4J Alliance mailing list.

JConf Peru 2020 Conference Report

JConf Peru 2020 took place October 23-24. This was the second time the event was held and due to the pandemic, the 2020 event was virtual and free. I am very proud to have participated as an invited speaker – the JConf series is an admirable effort by the Spanish speaking Java community to hold world-class events. My friend and Peru JUG leader Jose Diaz and his wife Miryan Ramirez have worked hard to make JConf Peru a reality. I delivered three talks at the conference focused on Java, Jakarta EE and Azure.

How Microsoft Learned to Love Java

On the first day of the conference I delivered my Java on Azure focused talk “How Microsoft Learned to Love Java”. The talk is essentially a tour of the broad range of services, tools and APIs Microsoft provides around Azure to better serve Java developers. I also briefly discuss the Java on Azure roadmap at a high level. The slides for the talk are available on Speaker Deck. There is a brief end-to-end demo that is part of the talk. You can run the demo yourself using step-by-step instructions available on GitHub to get a feel for how the Java on Azure experience looks like (please reach out if you need help). The video for the talk is now posted on YouTube.

On the same day there were talks on Jakarta EE, MicroProfile and Quarkus delivered by folks like Jonathan Vila, Alex Soto, Daniel Dias, Fabio Turizo, Jorge Cajas and Victor Orozco.

Jakarta EE on Azure Magic Mystery Show

On the second day I delivered my demo-driven, entirely slide-less talk “Jakarta EE on Azure Magic Mystery Show”. The talk covers the many ways Java EE/Jakarta EE developers can migrate their applications to Azure including virtual machines, Docker, Kubernetes and PaaS. All the material for the talk is available in self-paced workshop format on GitHub. The workshop will take you about a day to complete end-to-end (please reach out if you need any help). The video for the talk is now posted on YouTube.

It is worth reminding that myself and my team are always ready to work closely with Java EE/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Jakarta NoSQL Powered by Cosmos DB on the Cloud

Later in the afternoon I delivered one of my newer talks “Jakarta NoSQL Powered by Cosmos DB on the Cloud”. This talk covers using the new Jakarta NoSQL specification with Azure Cosmos DB. Cosmos DB is a multi-mode NoSQL database service on Azure that is compatible with MongoDB, Cassandra and Gremlin. The slides for the talk are available on Speaker Deck. Most of the talk is actually a demo. You can run the demo yourself using step-by-step instructions available on GitHub (please reach out if you need help). The demo currently covers MongoDB, I would love PRs covering Cassandra and Gremlin. The video for the talk is now posted on YouTube.

On the second day there were more talks on Jakarta EE and MicroProfile delivered by folks like Otavio Santana, Geovanny Mendoza, Aristides Villareal, Isaac Ruiz Guerra, Alex Soto and Fabio Turizo.

Beautiful Peru

Peru is a country rich in heritage and natural beauty. It is one of the six cradles of civilization and the center of the mighty Inca entire. I am proud to say I got to see a bit of this amazing country as part of my brief trip for the first JConf Peru. Just check out the album below of photos I took (click this link to view the album if the embedded slideshow is not working)!

All in all, I am happy to have had the opportunity to speak at JConf Peru again. I am very glad the event continued in virtual format despite the pandemic. I hope to speak there again and hopefully visit beautiful Peru again in the future.