Slido
https://sli.do
#geecon2019
Room 6
Reflection-Free Applications with Micronaut
Vladimír Oraný
Software Developer @ Agorapulse
About Me
- Vladimír Oraný
- Software Developer @ Agorapulse
- Groovy Developer for 10 years
- Gaelyk
- Grails
- Micronaut
- Testing & DSL Enthusiast
- Toolsmith
- Spreadsheet Builder
- Dru & Gru Testing Frameworks
- Agorapulse Micronaut Libraries
- Agorapulse Testing Libraries
- OfficeUnit
Agenda
- Problems of Current Java Frameworks
- Why Reflection-Free Matters?
- Other Java's Problem
- Why is cloud different?
- Micronaut Framework
- HTTP Server
- Bean Validation
- Bean Introspection
- Micronaut Data
- GraalVM Integration
- Summary
Problems of Current Java Frameworks
Why Reflection-Free Matters?
- Reflection data are kept in memory unless GCed
- Using reflection is slower
- Breaks Ahead-of-Time compilation (GraalVM)
Other Java's Problem
- Limited annotation API
- Type erasure
- Classpath scanning
- Slow dynamic class loading
Why is Cloud Different?
- Cold starts
- Pricing model
- Memory / CPU
- Time spent
Micronaut
Micronaut Applications
- HTTP Server
- HTTP Client
- WebSocket/SSE
- CLI
- Functions
- Scheduled Jobs
- Stream Listeners (Kafka, Kinesis)
Micronaut Ecosystem & Friends
- MongoDB
- Open API
- Neo4j
- Netflix
- RSS
- RabitMQ
- Redis
- JDBC
- Security
- Views 1.3
- Spring
- AWS
- Micronaut Data
- ElasicSearch
- Flyway
- GRPC
- GraphQL
- Groovy
- Kafka
- Kubernates 1.3
- Liquibase
- Micrometer
Showtime
Micronaut + GraalVM + AWS Lambda
Summary
- Using reflection impacts memory and performance
- Reflection breaks AOT (read GraalVM)
- Micronaut Reflection-Free AOT
- Bean Introspection
- Validation
- Data Access Layer
- Micronaut + GraalVM = BFF
Thank You
Reflection-Free Applications with Micronaut
By musketyr
Reflection-Free Applications with Micronaut
- 1,614