[hibernate-dev] Toward the first Hibernate Reactive release

Emmanuel Bernard emmanuel at hibernate.org
Thu May 7 13:03:12 EDT 2020


Hey everyone,

The work around Hibernate Reactive is coming along nicely. So has some 
other work needed on the Vert.x front and Mutiny front. Now is time to 
ship a first version to the community. With some of the people working 
on it, I've tried to come up with a list of tasks and decisions to make. 
And proposed decisions to avoid blockers.

## Communication

Most communication happens on the project Pull Request, a good thing I 
think. But the glue between them was missing as far as communication.
I propose we use hibernate-dev@ for this.

## The project name

There is an open PR related to the name of the project
https://github.com/hibernate/hibernate-rx/issues/77

I exchanged with Gavin and Sanne and went back and forth on it.

My preferred name _was_ `Hibernate ORM Reactive` because of the fight we 
did to make `Hibernate` != `Hibernate ORM` brand wise. But we have quite 
failed to convert the general public :) As a brand, `Hibernate Reactive` 
is strong and catchy. The only project besides ORM that could become 
reactive is Search  (I don't think validator has a strong case). We 
likely should swallow our pride and call the project `Hibernate 
Reactive`. If HSEARCH reactive comes up, we could use `Hibernate 
Reactive Search`.

So unless someone is strongly against it, let's call it `Hibernate 
Reactive` which would be our sub umbrella for our reactive work.
Frankly, the other names were too incorrect or suck for a brand. There 
is also the strong possibility that we would want to deliver all 
Hibernate Reactive subprojects as one to be able to combine them.

That means renaming the doc and the package, the GitHub repository and 
the Quarkus Extension. This will only be done after Query support is 
initially pushed not to disrupt things too much.

## Query support

I strongly think that we need Query support for the initial release. It 
can be an initial Query support. But we need something. This is the one 
technical subject that prevents us from releasing Hibernate Reactive 
alpha. Davide is working on it and we will know more in a week or two 
about the viability status.
As soon as there is shared code (working or not), Gavin offered to help.

## Mutiny

https://github.com/hibernate/hibernate-rx/issues/94

Mutiny will be a first class API for Hibernate Reactive. Gavin is 
working on building it.

## One module to rule them all

Today we have an API module and an Impl module. But reality is we don't 
know how we will split the project if any. This highly depend on the API 
reaction and popularity.
With Mutiny coming in, the API module became a bit complicated.

Gavin proposed to merge everything in one module during the alpha / beta 
stage of the project and reevaluate with user feedback. This will only 
be done after Query support is initially pushed not to disrupt things 
too much.

## Quarkus extension

https://github.com/quarkusio/quarkus/pull/9060

Andy did an awesome work into fleshing out the initial Quarkus 
Extension. Even better, it works for native for the main path :)

The main annoyance is that to generate schema, you need a JDBC driver 
setting and a JDBC driver in your classpath. We can improve on that but 
that's not a trivial amount of work to adapt `SchemaExport` and friends.

## Documentation

Right now we have the readme as documentation. The proposed idea is as 
followed:

- we convert the readme content (or get inspired from it) and generate a 
Quarkus guide out of it. Their format are really similar.
- best would be to convert the [Quarkus Hibernate ORM 
quickstart](https://github.com/quarkusio/quarkus-quickstarts/tree/development/hibernate-orm-quickstart) 
to use Hibernate Reactive and base the guide on it.
- a more formal documentation and working for Hibernate Reactive 
standalone (outside of Quarkus) can grow from these. See website 
section.

## Blog

We need to work on a blog announcing the project.

## Website

We need to adapt hibernate.org to have a Hibernate Reactive project. 
Once you make Awestruct work, it should be a relatively quick change to 
add the relevant sections. There is likely quite some work on the 
various messages and content of the key sections.

Once we have all or most of this, we can release and get user feedback 
:)
When? To that, I'd quote a wise man from the future

**Lt. Commander Geordi La Forge:** Look, Mr. Scott, I'd love to explain 
everything to you, but the Captain wants this spectrographic analysis 
done by 1300 hours.
[La Forge goes back to work; Scotty follows slowly]
**Scotty:** Do you mind a little advice? Starfleet captains are like 
children. They want everything right now and they want it their way. But 
the secret is to give them only what they need, not what they want.
**Lt. Commander Geordi La Forge:** Yeah, well, I told the Captain I'd 
have this analysis done in an hour.
**Scotty:** How long will it really take?
**Lt. Commander Geordi La Forge:** An hour!
**Scotty:** Oh, you didn't tell him how long it would really take, did 
ya?
**Lt. Commander Geordi La Forge:** Well, of course I did.
**Scotty:** Oh, laddie. You've got a lot to learn if you want people to 
think of you as a miracle worker.

Emmanuel


More information about the hibernate-dev mailing list