Slide 1

Slide 1 text

Ultra-fast MicroProfile and Jakarta EE with Microstream Otávio Santana Distinguished Engineer [email protected] Karina Varela Principal Technical Marketing Manager [email protected]

Slide 2

Slide 2 text

It's now time to upgrade your persistence skills

Slide 3

Slide 3 text

Persistence hero's journey ○ Why databases are used? ○ What challenges are faced by modern apps? ○ Why an in-memory persistence like Microstream performs significantly better? ○ How can such persistence strategy enhance architectural solutions? ○ How can I use it with Jakarta EE/Microprofile?

Slide 4

Slide 4 text

@otaviojava || @kvarel4 Endures knowledge Throughout humanity Temples, Caves as database Why do we need databases?

Slide 5

Slide 5 text

@otaviojava || @kvarel4 Architectural design demands knowledge How much information is available? App design Persistence design

Slide 6

Slide 6 text

@otaviojava || @kvarel4 Maturity Model State of affairs Persistence landscape Database flavors Paradigms Source: https://survey.stackoverflow.co/2022/#most-popular-technologies-language-prof 2022 Stackoverflow developer survey

Slide 7

Slide 7 text

@otaviojava || @kvarel4 It's the first thing we do Change is hard and expensive Maintaining evolutionary data Challenges in a database land

Slide 8

Slide 8 text

@otaviojava || @kvarel4 Challenges in a database land Different paradigms: Apps x DBMS Application (Object Oriented Language) Mismatch Database (Relational) Object Tables src: https://en.wikipedia.org/wiki/Directed_graph

Slide 9

Slide 9 text

@otaviojava || @kvarel4 Challenges in a database land Different paradigms: Apps x DBMS Application Mismatch Database Heritage Polymorphism Encapsulation Types Normalization Denormalization Structure

Slide 10

Slide 10 text

Mismatch Impedance == Slower persistence layer ● Conversions ○ Done every read and write ○ takes up to 90% of query time in total ● Complex framework or other types of mappings are required ● High complexity, development effort & costs

Slide 11

Slide 11 text

Mismatch Impedance == Slower persistence layer ● Conversions ○ Done every read and write ○ takes up to 90% of query time in total ● Complex framework or other types of mappings are required ● High complexity, development effort & costs

Slide 12

Slide 12 text

Ultra-fast in-memory data processing with pure Java.

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

@otaviojava || @kvarel4 Microstream 1000x Faster Database Queries

Slide 15

Slide 15 text

@otaviojava || @kvarel4 Cloud Object Store Choose your favorite data storage target Abstraction layer allows usage of multiple storage types and vendors SQL NoSQL Local File System

Slide 16

Slide 16 text

@otaviojava || @kvarel4 Microstream Hello World! StorageManager manager = EmbeddedStorage.start(); MyStructure structure = new MyStructure(); manager.setRoot(structure); structure.add(itemB); manager.storeRoot();

Slide 17

Slide 17 text

@otaviojava || @kvarel4 Microstream: Powered by CDI

Slide 18

Slide 18 text

@otaviojava || @kvarel4 ● Adopting ultra-fast persistence using Microstream within apps based on: ○ Java SE ○ Microprofile ○ Jakarta EE Demo

Slide 19

Slide 19 text

To learn more about Microstream, become an Open Source contributor, check out: https://microstream.one/ If you're interested in Java and software architecture as we do, let's stay in touch! https://architects4j.github.io/ Thank you! Otavio Santana @otaviojava https://otaviojava.com/ Karina Varela @kvarel4 https://kvarela.me/