►
Description
Tomas Langer- Helidon Architect & Developer at Oracle, Dmitry Kornilov- Jakarta EE & Helidon Team Lead at Oracle
---
JakartaOne Livestream Cloud Native for Java (CN4J) is a one-day virtual conference for developers, engineers and technical business leaders with the focus of building enterprise Java on Kubernetes.
This virtual event is a mix of expert talks, demos, and thought-provoking sessions focused on enterprise applications implemented using open source vendor-neutral Jakarta EE and Eclipse MicroProfile specifications on Kubernetes.
A
Please
follow
the
YouTube
channel
as
well
would
love
to
to
to
have
the
traction
there
and
on
that
same
YouTube
channel
we
will
have
all
of
our
sessions
uploaded
as
well.
So
that's
that's
one
way
to
be
in
touch
with
us.
The
other
way
is
to
really
get
involved
with
Jakarta
EEE
and
then
become
Eclipse
Foundation
member
during
Jakarta
working
group
and
then
start
working
on
the
specifications.
A
All
you
need
to
do
is
the
ECA
and
if
you
were
available
to
attend
the
world's
presentation
earlier
today,
you
know
that
he
shared
everything
on
his
screen
and
we
will
be
more
than
happy
to
share
that
presentation
with
you
as
well.
So
yes,
please
get
involved
and
and
and
help
us
out
on
the
journey
with
Jakarta.
A
B
B
B
If
you
don't
know
what
Kelly
done
is
it's
not
an
application
server
like
Deb
logic,
upon
needed,
CPR,
etc?
If
the
Java
libraries
for
developing
market
services
like
sprint
boot
quarterback's
now,
actually
there
are
two
chili
dogs
killing
on
SE
and
Hill
and
MMP.
Two
different
frameworks
use
one
of
them
in
your
micro
service.
Not
both.
B
We
created
two
hello
dolls
because
they
don't
believe
that
it's
a
good
idea
to
mix
two
development
experiences
carried
on
f-e
is
our
reactive
non-blocking
framework.
It's
designed
with
performance
mind
it's
similar
to
what
Netflix
is
using
for
based
services,
it's
similar
to
what
Apple
is
using
for
its
services.
It's
super
fast
and
very
small.
It
provides
more
than
development
experience
with
lambdas
fluent
API
builders
and
so
on.
There's
no
magic,
no
magic
means
we
don't
use
annotations
where
it's
not
dependency
injection,
but
instead
you
have
a
full
control
of
your
application.
B
Mp
is
I
would
say
a
modern
version
of
Enterprise
Java,
it's
club-friendly.
It
supports
micro
profile
and
some
Jakarta
components
it
provides
familiar
cherry
or
spring
would
like
development
experience
with
annotations
and
dependency
injection
with
magic,
so
killed
on
2.0.
This
is
what
this
presentation
is
about:
it's
not
released,
yet
it's
a
preview,
the
religious
plans
in
a
second
quarter
this
year,
but
they
already
released
free
milestones
and
the
short
milestone
was
released.
B
B
Hit
on
is
not
only
Oracle
product
in
cloud
they
give
shadow
family
aware
are
currently
four
products.
Tip
logic
is
our
Jakarta
application
server
offerings
is
our
in-memory
cache
solution
by
the
way
the
open
source
the
origin
of
conference
is
going
to
be
released
soon
to
in
the
Dom.
This
is
what
I'm
talking
about
now
and
Verrazano
kubernetes
based
hybrid
application
management
solution
talking
about
kubernetes.
They
were
two
talks
with
tubular
natives
before
mine,
Sebastian
and
Adam
used
cabinets
in
their
demos.
B
Oracle
provides
enterprise,
support
for
cloud
native
products
and
Healy
done
is
not
an
exception.
Hilla,
don't
support
is
included
in
support
contracts
for
products
listed
on
this
slide,
it's
variations
of
their
logical
Cochrane's.
So
now,
let's
finally
talk
about
halide
on
itself
and
new
features
and
I'll
start
with
Hill
it
on
S
II
from
this
slide,
I
put
all
he'll
Adonis
seat
to
the
JIRA
features.
Newly
added
features
are
marked
green.
B
We
already
had
a
non-blocking
web
server
configuration
security
and
observability
components,
but
these
are
missing
some
functionality
to
be
called
switch,
complete,
we're
closing
this
gap
by
it.
Reducing
DD
client,
which
is
non
blocking
database
access
api,
their
client,
which
is
non
blocking
HTTP
api
to
call
other
services
rate,
your
streams,
reactive
messaging.
We
have
socket
API,
which
was
requested
by
many
users
and
course
support.
B
B
We
also
aid
in
web
socket
to
calculate
socket,
and
course
support
and
and
B,
but
the
main
feature
in
Hillingdon
and
E's
growl
DM
that
if
he
would
support
Thomas
real
demonstrated
in
his
demo,
but
I
talked
about
the
build
profiles
a
little
bit
more,
so
we
support
now
free
form,
comparison
and
he'll
it
dong-won
we
supported
to
in
se,
and
only
one
in
MP
Sabattus.
One
is
if
you
cutable
jar
file
is
fully
supported
from
day
one
and
it's
a
hollow
jar.
It
means
that
it
contains
only
application
business
logic.
B
All
third-party
dependencies
are
collected
in
a
separate
directory.
It's
done
for
better
doctor
layering
support,
and
this
is
what
Adam
Dean
was
explained
in
his
talk.
I'm,
not
going
to
repeat
it.
Using
this
approach,
you
can
build
your
docker
image,
it's
really
fast
and
upload
download
stuff
faster.
B
The
second
profile
is
J
link.
It's
new
in
Hillard
on
to
the
Giro
you
know,
J
link
to
it
was
introduced
in
Java
9.
It's
used
to
build
Java
Runtime
environment,
which
contains
only
functionality
requested
by
your
application.
It
makes
your
overall
image
size
smaller.
It
also
optimizes
your
application
startup
time
and
what's
very
important
in,
doesn't
introduce
any
restrictions,
their
application,
so
you
can
call
using
em
everything
what
Java
provides
and
the
last
profile
is
drawing
native
image.
B
We
support
it
in
mp,
since
version
2
the
zero,
and
it
allows
you
to
build
an
executable
native
image,
gravure
native
image,
both
based
on
your
application,
with
advantages
of
almost
immediate
startup
time
and
the
lowest
possible
memory
consumption
as
a
drop
back.
It
introduces
some
restrictions
to
application
related
to
usage
of
runtime
Java
features
such
as
reflection
proxies
and
so
on.
It
becomes
important
than
instant
third
party
libraries.
The
channel
grow
them
optimized.
B
Here
is
a
slide
about
better
understanding
how
these
images
are
related,
so
I
created
free
images
based
on
our
Hill
Adan
and
P
QuickStart
application
and
sorry
chunk
too
early.
So
here
is
a
docker
image
size
comparison.
So
you
see
that
char
profile
image
is
the
biggest
is
to
con,
given
something
megabytes
it
because
it
contains
the
full
Java,
runtime
environments.
J
link
image
is
smaller.
It's
just
under
200
max
it's
optimized
and
growl,
the
M
natively,
which
is
the
smallest
and
startup
time.
B
You
see
the
same
picture
so
the
startup
time
for
which
our
profile
is
the
highest.
It's
almost
1.6
seconds.
It
was
another
fast
computer.
By
the
way,
J
link
profile
is
one
second,
something
and
foreground
way
and
making,
which
is
almost
immediate,
but
on
the
other
hand,
what
is
1.6
seconds
startup
side
all
right.
It
is
almost
nothing
comparing
to
the
time
of
port
provisioning
and
to
turn
edges
which
may
be
like
30
seconds
or
something
like
that.
B
B
It
also
has
a
development
port
which
tracks
your
source
called
recompile
seeds
and
reruns
the
application,
if
it
detects
some
changes
without
like
restarting
20
convenient
they
in
the
highly
requested
by
the
community.
It's
doing
active
development.
We
are
planning
to
add
more
interesting
features
soon.
I
don't
want
to
spend
much
time
here.
Thomas
wrote
demonstrated
in
his
dama
to
DB
client.
B
When
we
are
developing
a
non-blocking
service
accessing
the
database
was
always
a
challenge,
it's
mainly
because
we
are
not
too
many
non-blocking
database
drivers
and
agent
blocking
database
access
functionality
to
your
non
blocking
service
doesn't
make
any
sense.
So
if
the
decline
is
not
change
anymore,
it
adds
non-blocking
database
texas
api
and
allows
you
to
use
existing
blocking
database
drivers
in
a
non
blocking
way
sounds
little
bit
complicated
again.
Thomas
will
demonstrate
it
if
he
casts
time
in
this
demo.
So
digitize
API
supports
relational
and
no
sequel
databases.
B
B
It
uses
convention
over
configuration
in
a
way
that
all
database
statements
using
your
application,
I
externalized
in
configuration
files,
not
in
the
code,
which
adds
limited
portability,
so
you
can
switch
databases
by
changing,
only
configuration
without
three
comparing
your
recompiling,
your
application,
their
client,
another
new
API
Hill
it
on
2.0,
it's
a
non-blocking,
HTTP
client,
it's
designed
and
tailored
on
assyria
active
style
supports
all
HTTP
operations
provides
full
integration
with
observability
features
and
as
follows:
redirects
also
can
be
extended
by
extra
functionality.
Thomas
will
demonstrate
it
in
his
DMR,
get
reactive
streams
and
messaging
in.
B
B
We
have
a
goal
of
delivering
one
of
the
fastest
reactive
steam
spray
operators.
Implementations
and
here
is
a
comparison
for
implementation
with
small
right
small
rise,
a
reference
implementation
of
microprocessor.
You
can
see
that
we
are
about
twice
faster,
which
is
perfect
result
for
us,
and
the
last
feature
I'm
going
to
highlight
course.
B
What
is
course,
you
know
browsers
by
default
by
using
same
origin
policy,
so
browser
can
access
resources
only
from
the
same
region
that
provided
the
app
means
that
you
have
your
application
on
the
solar.
You
access
it
by
IBM
browser
you
can't
access
any
other
resource
other
than
located
on
your
server,
which
sometimes
is
a
little
bit
of
a
problem
and
to
solve
this
problem
exists,
cause
originally
search
sharing.
B
This
is
the
stuff
which
controls
access
by
their
up
from
one
region
to
resources
from
another.
It
uses
HTTP
headers
for
that
and
in
Hillingdon
we
support
it
fully
in
SE
and
MP,
and
it's
automatically
supported
by
Hillingdon
features
like
health
check,
metrics
and
open
api.
So
for
better
understanding.
So
this
is
a
slightly
explaining
how
it
works
so
suppose.
B
Hospitality
dot-com
hosts
an
application
but
retrieves
friendly
messages
from
other
apps
and
we
have
a
hill
it
on
QuickStart
application,
write
it
on
my
server
calm,
which
provides
some
greeting
right.
So
in
your
browser
browser
load,
the
del
come
up
from
hospitality,
calm
and
hospitality.
Calm
becomes
course
origin.
B
This
application
request
something
from
my
sovereign
calm.
If
does
get
on
great
results,
so
host
becomes
my
server
calm
and
browser
course.
Implementation
adds
host
in
the
region
headers
to
your
request,
so
solar
receives
two
requests
purposes
of
a
little
application
and
Helen
own
application
checks.
Is
this
restore
and
these
methods
allowed
for
resource
sharing?
If
so,
that
entity
returned,
if
not
and
for
free?
Is
it
job?
So
it's
as
simple
as
that,
how
its
implemented
in
F
II.
B
You
create
a
course
support,
basically
build
it
using
a
builder,
and
you
add,
across
the
region,
support
to
the
Builder.
The
first
one
allows
to
trick
that
and
allow
the
region's
the
hospitals
that
comment.
Other
calm
and
cross
written
support,
dot
create
basically
allows
everything
else
to
other
origins.
B
After
that,
then
this
course
support
is
creative.
You
just
register
it
the
same
day
as
in
your
routing,
important
that
it
should
be
added
before
arranged
in
the
great
service
which
needs
it
works
for
in
empty.
It's
even
more
easy.
It's
just
annotation
across
the
region.
There
you
provide
all
the
required
information.
B
B
No,
that's
actually
a
good
question,
so
where
are
some
drivers
which
are
native
image
friendly?
So
we
faceted
on
h2
right
and
there
are
some
other
drivers
provided
by
Red
Hat,
which
are
native
image
friendly
and
what
I
can
say
that
Oracle
works
on
make
it
or
it
will
be
be
driver
native
image
friendly,
but
unfortunately
I
don't
think
that
it
comes
being
scale
it
on
to
the
general
release.
It
may
come
later
on
this
year.
I
don't
know
exactly
today.
C
Good,
alright,
so
I
will
start
by
using
our
Haledon
come
online
interface
to
show
how
the
breaks,
so,
let's
just
show
that
I'd
a
little
bit
it's
it's
a
single
file.
Download
I
will
talk
about
it
a
bit
later
when
I
have
a
few
moments
during
our
built.
So
first
thing
that
I
want
to
do.
I
want
to
create
a
new
holiday
application.
So
what
I'm
doing
here,
I'm
creating
a
version
two
muscles
to
the
application
with
sesame
flavor.
Of
course
you
can
use
MV
flavor
as
well.
Now
this
will
create
an
application.
C
If
I
look
here,
you
can
see
that
it
is
the
usual
hell,
didn't
application
prepared
with
the
dockerfile
llamo
file
for
Copernicus
and
the
sources
now.
The
next
thing
I
can
do.
I
can
build
my
project,
but
because
I
already
have
Holden
running
I
just
want
to
change
the
pork.
So
I
will
do
a
quick
figures
here.
I
will
change
the
port
to
something
that's
not
worked
now.
I
will
do
how
we
can
build
and
I
will
give
it
make
a
cloak.
This
is
an
example
of
a
head
of
time:
compilation
using
Oracle,
growl
VM.
B
C
C
The
good
thing
in
Haledon
is
that
all
the
things
that
you
see
here,
building
of
the
application
building
of
the
native
image
and
building
of
a
docker
file,
a
docker
image,
are
done
using
the
usual
tools
that
you
would
expect.
So
you
can
use
pure
maven.
You
can
use
the
chorale
vm
native
image
to
compile
it
if
you
provide
all
the
switches
and
you
can
build
docker
using
the
docker
command.
So
as
you
can
see
I
my
native
image
is
built
for
Hilden
SE.
Now,
I
can
just
start
it.
You
can
see.
C
So
we
can
see
that
the
full
size
of
the
native
image
is
23
megabytes,
and
this
is
a
an
application
that
contains
everything
that
you
need.
You
don't
need
JB
JVM,
you
don't
need
anything
else.
That's
it.
We
can
compare
it
to
the
actual
size
of
the
libraries
that
are
used
by
how
atom,
so
that
would
be
this
directory
for
se.
C
You
can
see
that
the
whole
sum
of
all
the
dependencies
of
Houghton
I
see
is
5
megabytes
when
you
use
the
basic
configuration
and
of
course
we
can
have
a
look
on
the
the
size
of
the
application
itself,
which
is
12
kilobytes,
it's
the
whole
jar
dimitri
talked
about
it.
That's
why
I
wanted
to
show
here
I
will
show
something
some
parts
of
the
CLI
later
so,
let's,
let's
finish
this
screen,
and
let's
go
to
my
head
and
application.
C
This
show
I
have
created
using
my
Haledon
init
command
and
SE
application,
and
an
empty
application
for
Culloden
I
see
I
am
using
what
we
call
a
dev
mode.
You
just
do
hold
in
death.
It
will
start
your
application
and
whenever
you
do
a
change,
it
will
make
sure
that
you
get
the
latest
version
in
Europe
in
here.
So
you
don't
need
to
restart
it
manually.
It's
all
done
behind
the
scenes,
for
you.
C
C
There
is
no
free
lunch,
you
pay
for
stuff.
So
if
you
want
to
have
a
head
of
time
compilation,
you
obviously
need
to
build
that
a
compiled
file,
and
that
takes
time
and
the
bigger
your
application
is
the
more
dependencies
you
have
the
longer
it
would
take.
Of
course,
you
also
need
a
bit
of
memory
to
be
able
to
compile
it.
Now.
The
application
can
be
started,
I
will
just
start
my
empty
application
and
now
I
can
go
and
show
what's
actually
in
this
application.
The
start
of
time
here
it's
printed
here,
it's
55
milliseconds.
C
There
are
a
few
things
that
must
happen
when
you
start
an
application
in
native
image,
such
as
loading
of
your
configuration,
because
you
don't
want
to
be
stuck
with
the
configuration
you
had
at
the
time
you
compile
your
application
now.
This
is
the
source
code
of
my
Holden
and
B,
and
what's
really
important
here,
this
one
cost.
This
is
our
jax-rs
resource,
and
this
is
the
only
thing
that
we
need
to
have
a
working,
jax-rs
or
rest
application
in
Haledon
NP.
It
uses
the
usual
allocations
of
jax-rs.
C
A
C
We
are
injecting
config
property
when
you
build
this
application,
it
uses
a
main
path
that
comes
from
Holden
and
it
just
boots
the
CGI
which
takes
care
of
everything.
So
obviously
we
need
to
have
our
business
dot
XML
file,
and
then
we
have
the
micro
profile,
config
properties
to
set
up
Haledon.
So
here
what
I'm
doing
I'm
preparing
the
server
port
the
listener
address
and
then
I'm
configuring,
the
service
of
the
tracing,
because
I
want
to
also
show
tracing
later
on.
So
I
think
that
there
was
a
lot
of
stuff
said
about
micro
profile.
C
C
Let's
see
if
it
it
worked,
you
can
see
it's
quite
fast
because
of
the
layering
that
we
talked
about.
I
have
changed
nothing
in
my
application,
so
it
didn't
need
to
recompile
and
it
just
created
a
docker
image.
The
good
thing
I,
think
from
from
for
users
of
docker,
is
that
it's
actually
using
the
total
command.
So
we
don't
have
custom
maven
plug-in.
We
try
to
use
the
tools
that
are
built
for
the
task
and
for
building
docker
images.
We
think
the
correct
tool
is
toker.
C
Now,
let's
go
back
and
start
talking
about
the
new
stuff
in
Holden
se,
because
that
was
the
most
complicated
part,
so
I
will
switch
to
hold
on
I,
see
and
what
I
prepared
here
is
an
application
that
uses
a
database
and
it
calls
another
service
using
our
reactive
client.
So
I
will
start
from
configuration.
C
Supporting
again,
we
have
the
tracing
configuration
to
be
able
to
see
the
two
services
that
are
part
of
our
communication
chain.
I
have
to
change
the
port,
so
we
don't
have
a
conflict,
so
our
front-end
is
running
on
port
80,
60
and
now
comes
the
configuration
of
the
database,
and
this
is
what
Dimitri
talked
about.
We
try
to
keep
the
database
configuration
solely
in
your
configuration
file.
C
So
if
you
decide
to
switch
from
H
to
database,
which
is
an
example
here
to
Oracle
database,
for
example-
and
you
need
to
change
your
selects,
you
can
just
do
it
in
the
configuration
file
and
the
application
will
work
the
same
way.
So
here
you
can
see
that
we
configure
our
collection
of
Culloden,
actually
supports
encryption
of
keys
in
the
in
the
configuration
files,
both
in
Helen
Sdn
and
Helen
and
B.
C
So
if
you
wanted
to
do
that,
you
can,
of
course
you
can
also
use
kubernetes
secrets
and
load
those
files
as
an
additional
configuration
source.
I
will
here
you
consider
statements.
We
have
wondered
this
kind
of
system
statement
that
is
used
by
health
checks.
If
you
have
them
enabled
and
then
I
have
just
a
single
selling
here,
that
is
using-
that's
called
a
good
greeting
that
will
select
just
something
from
the
tape
from
the
table
in
our
database.
C
Now,
that's
it.
Let's
have
a
look.
How
that
looks
in
the
source
code,
so
I
was
close,
our
MV
resources
and
let's
have
a
look
at
our
service
that
this
responsible
for
handling
it.
So
I
will
start
with
creating
our
web
client
and
TD
client.
So,
if
you
have
ever
played
around
with
halidom,
you
may
have
seen
that
we
like
builder
patterns
and
fluent
API,
so
we
try
to
be
to
allow
you
to
build
everything
in
that
in
a
flow.
So
here
we
create
a
builder.
C
We
give
it
the
configuration
of
the
database
from
our
configuration
file
I
configure
an
interceptor
which
is
a
deep
database,
counselor
so
visible
at
metrics
into
our
database
and
I.
Just
build
a
client
and
I
will
immediately
show
how
we
build
the
web
client,
so
here
I'm
just
using
a
base.
Uri
hard-coded
the
web
client
similarly
has
a
possibility
to
configure
this
using
our
configuration.
I
just
didn't
want
to
do
it,
I
want
it
to
show
one
using
programming
and
one
using
the
configuration.
C
We
add
the
support
for
JSON
processing
here
and
again,
I'm
registering
a
counter
and
then
building
my
client.
So
this
is
the
first
step
we
prepare
it
when
we
prepare
the
instance-
and
these
are
reusable
so
later
on-
we
use
them
in
route.
So
let's
have
a
look,
how
the
routing
works.
So
for
those
who
haven't
used
thousand
as
E,
we
have
the
concept
of
routing
where
you
configure
rules
on
a
specific
route.
So,
for
example,
this
service
is
registered
on
slice
Creed
and
it
registered
its
own
subpaths
for
various
HTTP
methods
and
policies.
C
So
here
we
can
see
that
if
you
call
get
requests
on
the
root
of
this
service,
we
have
some
default
message
handler.
If
you
call
get
requests
with
a
name
parameter
in
the
past,
it
can
call
the
get
message
handler.
That's
the
one
I
will
talk
about,
and
then
we
have
a
put
support
on
slide
greeting
that
will
update
the
message,
so
the
one
that
I
played
around
with
is
the
good
message
handler,
which
normally,
if
you
create
our
QuickStart,
will
just
print
hello
and
the
name
that
we
have
sent.
C
What
I
changed
here
is
that
I
have
decided
to
call
the
database
first
and
see
if
we
have
something
stored
in
the
database
for
that
user.
So
here
you
can
see
that
I
try
to
execute
a
database
statement,
and
here
we
have
the
name
to
get
statement
which
uses
the
category
king
name.
So
this
is
the
mapping
to
the
configuration
file
and
I
gave
it
the
parameter.
C
It's
the
name
that
I
have
received.
So
if
I
go
back
to
the
configuration,
we
can
see
that
I'm
using
the
usual
JDBC
approach
of
a
question
mark
instead
of
a
parameter.
We
also
support
named
parameters.
So
you
could
actually
do
something
like
this,
but
then
you
need
to
provide
a
name
map
of
parameters
when
you
may
execute
your
statement,
so
this
name
get
is
returns
a
completion
stage
because
it's
a
non
booking
environment.
C
By
the
way,
it's
important
to
understand
that
for
JDBC,
which
is
working
API,
we
obviously
need
to
do
something
about
it,
so
this
is
handled
by
using
an
executor
service.
So,
even
though
it's
non
booking,
there
is
still
a
set
of
threads
that
will
book
on
the
JDBC
calls,
but
they
will
not
be
booking
the
server
and
they
will
not
be
booking
other
routes
that
are
executed
in
this
server.
C
So
when
I
executed,
I
get
an
optional
with
the
result,
because
I
get
is
basically
a
statement
that
returns
either
thing
or
a
single
record,
and
if
it's
not
found
I
just
returned
a
4/4.
If
it's
found,
I
will
invoke
the
other
service
and
of
course
we
need
to
handle
exceptions.
So
if
you,
for
example,
if
it
returns
more
than
one
record,
something
has
to
happen
so
I
just
send
the
exception
over
the
wire
which
either
sends
the
stack
trace
over
the
network
or
just
a
500
error,
depending
on
configuration
of
web
server.
C
So
here
what
I
am
doing,
I'm
just
reading
the
call
number
2.
You
can
also
read
columns
by
name
from
the
statement,
if
you
generally
don't
like
ordered
parameters.
But
it's
the
like.
The
simplest
approach
is
just
to
use
the
ordering
number
and
I
read
it
as
a
string
and
now
my
call
MP
of
a
method
is
the
one
that
is
invoking
the
web
client
and
calling
our
Alden
MP
service
and
here
for
the
web
client
I'm
just
saying
that
I
want
to
invoke
a
get
request.
C
So
does
the
HTTP
work
I'm,
giving
the
past,
which
is
the
name
that
I
have
retrieved
from
the
database
and
I
execute
the
request?
And
again
this
returns
a
completion
stage,
because
the
request
is
happening,
a
synchronously
with
a
non-blocking
approach
when
it
comes
back,
I
just
copy
the
content
from
the
outbound
requests,
so
I
copy
the
status,
then
I
copy
the
content
and
that's
it
and
again
exception
handling.
So
this
is
a
full
reactive
flow
of
curing
the
database
and
invoking
web
service
with
the
result
of
the
database.
C
Now
you
can
also
see
one
important
thing
here.
Reactive
programming
is
in
general,
a
lot
of
scaffolding
and
not
that
much
business
logic.
If
you
compare
it
to
synchronous
programming,
so
you
get
a
huge
amount
of
performance
out
of
it
parallelism,
but
you
also
pay
for
it.
With
the
complexity
of
writing
such
code
and
I'm
really
looking
forward
to
project
loon,
finally
hitting
the
JVM,
because
then
we
should
be
able
to
have
synchronous
in
occasions
with
without
the
price
of
walking
threats
all
right,
so
the
whole
thing
is
set
up.
C
I
have
my
hood
and
you're
running
in
my
head
in
death
mode
I
have
am
be
running
from
native
image,
so
we
should
be
able
to
actually
invoke
it.
So,
let's
do,
as
do
our
color
command.
I
have
single
record
in
the
database,
which
is
for
Jack,
it
shows
returned
Sparrow,
and
so
it
does
so
now.
You
can
believe
me
that
we
have
clearly
the
database
and
called
the
remote
service.
I
can
prove
it.
We
have
tracing.
C
There
was
a
lot
of
stuff
set
about
all
the
observability
features
and
tracing
this
one
of
the
most
useful
ones.
So
what
I
can
do
now?
I
will
just
search
for
old
traces
that
are
in
my
system,
and
you
can
see
that
there
was
an
S
II
call.
So
there
was
an
HTTP
request
coming
to
our
holida
nestle
on
slash,
agree,
slash
check,
which
is
what
I
have
done
using
Carol
command
and
now
I
can
show
that
whenever
you
use
a
Heligan
feature,
we
always
think
about
metrics
and
about
tracing.
C
So
when
there
is
a
database,
you
have
the
possibility
to
hook
it
into
the
tracing
chain,
and
you
can
see
it
here.
So
we
have
seen
that
there
was
a
get
operation
in
the
database.
There
is
the
select
that
was
executed,
of
course,
without
parameters
we
have
the
database
type
and,
if
I
show
all
our
records,
it
also
says
that
it
returns
returned
a
single
result.
C
C
C
Metrics
registered
there
is
the
counter
for
localhost,
it's
form
coming
from
the
web
client,
and
we
have
the
DB
counter
forged
greeting,
where
I
have
decided
to
have
for
each
statement
that
we
could
have.
We
would
have
a
different
country,
so
here
we
can
see
that
we
called
the
gate
on
localhost
was
a
response
203
times
and
we
called
gate
greeting
three
times
as
well.
So
this
was
all
my
oh.
C
C
And
you
may
have
seen
that
all
these
commands
are
repeated
over
and
over
again
during
today,
and
that's
because
obviously
this
is
all
coming
from
micro
profile
specifications.
So
even
though
we
are
using
Holden
s
EE
and
you
can
see
that
we
have
a
few
checks
that
are
registered
by
hand
I
have
actually,
these
are
like
built-in
health
checks
in
Haledon
that
you
can
use
if
you,
so
we
have
deadlock,
disk
space
and
memory
health
check.
So
even
though
in
Helen
s
II,
we
we
provide
a
reactive
implementation
of
libraries
to
build
your
micro
services.
C
We
have
adopted
the
Micro
profile,
KPIs
that
are
not
CDI
specific
and
we
are
using
them
as
well.
So
each
basically
each
hidden
feature
that
you
can
see
here
is
somehow
connected
with
the
micro
profile
API.
There
is
one
exception
which
is
metric,
which
is
config
because
configuration
we
have
designed
our
configuration
before
micro
profile
came
into
being,
but
for
metrics
the
format
that
you
see
you
can
also
do.
You
can
get
the
JSON
format
of
Micro
profile
or
the
text
format
of
committees.
So
I
can
show
that
here
if
I
go
to.
C
C
Or
you
can
request
a
JSON
format,
which
is
micro
profile.
The
same
thing
is
for
health
checks.
We
have
adopted
the
health
check
format
of
micro
profile,
even
in
health
and
se,
so
it
doesn't
matter
whether
you
choose
to
use
evident
MP
or
held
in
SE.
The
observability
features
are
the
same,
so
you
can
use
the
same
tools
to
monitor
your
application
to
troubleshoot
your
applications.
C
Another
thing
for
tracing
actually
tracing
is
also
part
of
micro
profile
specification,
although
it's
basically
take
using
the
open
tracing
specification
for
all
the
api's,
except
for
one
on
location
and
if
you
use
hidden
se
or
MP,
they
both
propagate
automatically
or
the
required
headers
for
for
tracing.
So
if
you
have,
you
know
incoming
headers
from
zip
in
any
music
in
yourself,
and
then
you
call
another
service
that
uses
a
pin.
You
will
automatically
get
all
of
this
in
your
second
tracer.
The
same
comes
from
for
Jager
as
well.
Obviously,.
C
C
So,
even
though
you
can
use
almost
everything
from
java,
except
for
method
handles
and
a
few
other
things,
you
need
to
be
aware
that
whatever
you
do
in
a
static,
initializer
will
be
initialized
at
the
build
time.
And
then,
when
you
run
your
application
is
just
there
and
you
can
do
nothing
about
it.
So
that's
the
reason
why
we
differentiate
as
the
square
goes
obviously
between
a
builds
time
in
the
run
time,
and
you
need
to
be
very
much
aware
of
what
you
do
in
which
of
these
areas.
C
A
C
B
C
Or
reactive
messaging,
so
I
think
the
materials
are
there.
We
have
our
own
implementation.
That
is
neither
so
that's
that's
how
we
we
decided
to
do
it
in
our
case
for
the
JDBC
drivers
that
were
mentioned
before.
As
far
as
I
know,
there
is
no
driver
that
works
without
modifications
we
are
actually
using.
In
our
example,
the
Quercus
HT
2
driver
and
thanks
for
guys
from
Farkas
to
actually
doing
that
work
because
it's
it's
demanding
and
you
know
with
every
new
version
you
need
to
go
back
to
it.
A
Yeah,
so
we
are
going
to
start
well,
first
of
all,
Thank
You,
Dimitri
and
Tamas.
This
was
great
thanks
for
participating
and
and
supporting
and
being
part
of
the
Jakarta
on
livestream
for
others.
We
are
going
to
start
the
next
session
at
the
top
of
the
hour.
So
I
can
see
you
there,
but
I
also
want
to
take
the
opportunity
and
just
to
share
my
screen
briefly
and
if
you're
interested
give
you
a
little
bit
more
details
on
how
we
can
how
you
can
further
help
us
out
so
and
what
other
news
are
out
there.
A
So
I
told
you
to
get
involved.
I
already
mentioned
earlier
and
I.
Think
well
was
mentioning
earlier
that
we're
preparing
annual
Jakarta
1
livestream
in
September
so
keep
your
eyes
and
ears
open
for
that
for
Portuguese
speaking
people,
please
be
aware
that
August
29th
there
is
going
to
be
another
Jakarta
one
live
stream.
If
you
are
interested
in
organizing
Jakarta,
one
live
stream
in
your
local
language.
A
Do
not
hesitate
to
get
in
touch
with
me,
I'll
be
more
than
happy
to
help
you
out,
and
then
we
are
organizing
eclipse
con
2020
as
a
virtual
event,
and
we
already
know
the
dates
so
please
register
for
the
event
and
and
and
mark
your
calendar
for
October
19
to
20
seconds.
You
already
know
how
many
compatible
implementations
we
have
out
there.
So
you
can
also
visit
the
on
jakarta
ee
website
to
the
compatible
implementations
and
read
about
them.
Let
me
see
what
else
can
I
tell
you?
A
A
Projects
and
community
mailing
lists
and
I
will
stop
with
you
know,
highlights
or
focus
from
the
on
the
Jakarta
e9
release.
We
already
talked
about
this
earlier
or
well.
Brother
talked
about
this
earlier
in
his
talk,
but
you
know
wanted
to
to
share
again
and
invite
you
to
get
involved.
We
still
need
a
lot
of
help
with
the
change
of
the
Jakarta
or
Java
clean
space
rather
to
Jakarta.
A
A
So
one
more
thing
that
we
just
put
out
there
for
people
who
want
to
get
started
with
Jakarta
Yi:
this
is
being
developed,
but
for
the
time
being,
you
can
also
see
some
of
the
examples
and
starting
point
projects.
So
if
you're
again
interested
please
get
involved
there
and
you
let
us
know
if
you
have
any
feedback
and
help
us
further
develop.
The
true
trial
started
for
Jakarta,
II
and
I,
guess
that
is
it
any
more
questions
comments?