Duke on CRaC
with Jakarta EE
Ivar Grimstad
Jakarta EE Developer Advocate
Rustam Mehmandarov
Senior Software Engineer
Slide 2
Slide 2 text
https://github.com/ivargrimstad
https://www.linkedin.com/in/ivargrimstad
@[email protected]
ivargrimstad_of
fi
cial
@ivar_grimstad
https://www.threads.net/@ivargrimstad_of
fi
cial
@theguywiththeduketattoo.com
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
2022 2024/5
2020
javax.* -> jakarta.* Jakarta EE Core Pro
fi
le
Java 21
Embrace Records
Jakarta Data
CDI Centric
Removals and Deprecations
Slide 7
Slide 7 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Speci
fi
cation
Document
API
TCK
Final Speci
fi
cation
Compatible
Implementation(s)
Speci
fi
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE 11
Slide 11
Slide 11 text
RESTful Web Services 4.0
JSON Processing 2.1
JSON Binding 3.0
Annotations 3.0
CDI Lite 4.1
Interceptors 2.2
Dependency Injection 2.0
Servlet 6.1
Pages 4.0
Expression Language 6.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.1
WebSocket 2.2
Enterprise Beans Lite 4.0
Persistence 3.2
Transactions 2.0
CDI 4.1
Authentication 3.1
Concurrency 3.1
Security 4.0
Validation 3.1
Data 1.0
Authorization 3.0
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
Jakarta EE 11 Platform
Jakarta EE 11 Web Pro
fi
Updated
Not Updated
New
Slide 12
Slide 12 text
Jakarta EE 11 Web Pro
fi
le
RESTful Web Services 4.0
JSON Processing 2.1
JSON Binding 3.0
Annotations 3.0
CDI Lite 4.1
Interceptors 2.2
Dependency Injection 2.0
Servlet 6.1
Pages 4.0
Expression Language 6.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.1
WebSocket 2.2
Enterprise Beans Lite 4.0
Persistence 3.2
Transactions 2.0
CDI 4.1
Authentication 3.1
Concurrency 3.1
Security 4.0
Validation 3.1
Data 1.0
Jakarta EE 11 Core Pro
fi
Updated
Not Updated
New
Slide 13
Slide 13 text
Jakarta EE 11 Core Pro
fi
le
Updated
Not Updated
New
RESTful Web Services 4.0
JSON Processing 2.1
JSON Binding 3.0
Annotations 3.0
CDI Lite 4.1
Interceptors 2.2
Dependency Injection 2.0
Slide 14
Slide 14 text
Jakarta EE 11
API source level: Java SE 17
API binary level: Java SE 17
TCK run with: Java SE 17+21
App Developers (YOU) can use Java SE 21 features if you like !!
Slide 15
Slide 15 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Release Cadence
~6-9 Months after the latest LTS of Java
Slide 16
Slide 16 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
May, 2024
Milestone 4
• Feature complete
• All API jars released
• For each API at least one compatible
implementation (e.g. Hibernate, Mojarra)
• Each compatible implementation passed
standalone TCK
jakarta.platform
jakarta.jakartaee-api
11.0.0-M4
provided
Slide 17
Slide 17 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Q4, 2024 (Core Pro
fi
le)
Q1, 2025 (Web Pro
fi
le)
Q2, 2025 (Platform)
Slide 18
Slide 18 text
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
CRaC
Slide 19
Slide 19 text
Running Application Running Application
Aware of checkpoint
being created
Aware of restore
happening
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Warp
-XX:CRaCEngine=warp
Slide 26
Slide 26 text
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta EE and CRaC
Slide 27
Slide 27 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Managed Resources
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta Contexts and Dependency Injection 4.1
https://jakarta.ee/speci
fi
cations/cdi/4.1/
Slide 30
Slide 30 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
CDI Application Lifecycle Events
Slide 31
Slide 31 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
BeforeBeanDiscovery
AfterTypeDiscovery
BeforeShutdown
AfterBeanDiscovery
AfterDeploymentValidation
Slide 32
Slide 32 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
CDI Bean Discovery Events
Slide 33
Slide 33 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
ProcessAnnotatedType
ProcessInjectionPoint
ProcessInjectionTarget
ProcessBeanAttributes
ProcessBean
ProcessProducer
ProcessObserverMethod
Slide 34
Slide 34 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
CDI Scopes
Slide 35
Slide 35 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
ApplicationScoped
SessionScoped
Custom Scopes
RequestScoped
Slide 36
Slide 36 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
(ApplicationScoped.class)
@Observes @Destroyed(ApplicationScoped.class)
@Observes @Initialized
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
The CRaC API
@ApplicationScoped
public class StartupListener implements Resource {
@Override
public void beforeCheckpoint(Context context) {
// before checkpoint
}
@Override
public void afterRestore(Context context) {
// after restore
}
}
Slide 41
Slide 41 text
Demo
Slide 42
Slide 42 text
Helidon
Quarkus
Average startup Time (ms)
0 0,65 1,3 1,95 2,6
1,234
1,379
1,332
2,409
No CRaC CRaC
kind
of not very scienti
fi
c
2.3 GHz
8-Core
Intel Core i9
Slide 43
Slide 43 text
Helidon
Quarkus
Average startup Time (ms)
0 0,375 0,75 1,125 1,5
0,551
0,712
0,847
1,458
No CRaC CRaC
kind
of not very scienti
fi
c
10-Core
Apple M1 Max
Slide 44
Slide 44 text
COPYRIGHT (C) 2022, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Summary
Slide 45
Slide 45 text
Authorization 3.0
Activation 2.1
Batch 2.1
Connectors 2.1
Mail 2.1
Messaging 3.1
Enterprise Beans 4.0
RESTful Web Services 4.0
JSON Processing 2.1
JSON Binding 3.0
Annotations 3.0
CDI Lite 4.1
Interceptors 2.2
Dependency Injection 2.0
Servlet 6.1
Pages 4.0
Expression Language 6.0
Debugging Support 2.0
Standard Tag Libraries 3.0
Faces 4.1
WebSocket 2.2
Enterprise Beans Lite 4.0
Persistence 3.2
Transactions 2.0
CDI 4.1
Authentication 3.1
Concurrency 3.1
Security 4.0
Validation 3.1
Jakarta EE 11 Platform
Updated
Not Updated
New
Data 1.0
Under Developm
ent
Slide 46
Slide 46 text
2026
2024/5
2020
Java 21
Embrace Records
Jakarta Data
CDI Centric
Removals and Deprecations
Jakarta EE Core Pro
fi
le
2022
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
12
javax.* -> jakarta.*
Slide 47
Slide 47 text
Authorization 5.0*
Activation 2.1
Batch 2.2
Connectors 2.2
Mail 2.1
Messaging 3.1
Enterprise Beans 4.1
RESTful Web Services 5.0
JSON Processing 2.2
JSON Binding 3.1
Annotations 3.1
CDI Lite 5.0
Interceptors 2.2
Dependency Injection 2.0
Servlet 6.2
Pages 4.1
Expression Language 6.1
Debugging Support 2.0
Standard Tag Libraries 3.1
Faces 5.0
WebSocket 2.3
Enterprise Beans Lite 4.1
Persistence 4.0
Transactions 2.1
CDI 5.0
Authentication 5.0*
Concurrency 3.2
Security 5.0
Validation 4.0
Jakarta EE 12 Platform
Updated
Not Updated
New
Data 1.1
Query 1.0
Subject to Change
MVC
NoSQL
Slide 48
Slide 48 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
CRaC
Slide 49
Slide 49 text
COPYRIGHT (C) 2025, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
Jakarta CRaC
An
Idea?
Slide 50
Slide 50 text
Project Leyden
Slide 51
Slide 51 text
Jakarta EE
https://jakarta.ee
Get Started
https://start.jakarta.ee
CRaC
http://openjdk.org/projects/crac
Demo Code
https://github.com/mehmandarov/randomstrings
https://theguywiththeduketattoo.com