@sendilkumarn
Do one thing & do it well
Independent deployability
No single point of failure
Slide 13
Slide 13 text
@sendilkumarn
Why Reactive
microservices?
Slide 14
Slide 14 text
@sendilkumarn
Highly-interactive & ultra-fast experiences
Things that scale dynamically
Utilize the maximum benefit out of the systems
Reactive µ-service
Slide 15
Slide 15 text
@sendilkumarn
Service Service
Over a network
Reactive µ-service
Slide 16
Slide 16 text
@sendilkumarn
Reactive µ-service
Get me some data.
Green → Yellow service - latency : 50ms
Yellow → Orange service - latency : 100ms
Yellow → Blue service - latency : 20ms
170 ms
Slide 17
Slide 17 text
@sendilkumarn
Reactive µ-service
Get me some data.
Green → Yellow service - latency : 50ms
Green → Orange service - latency : 100ms
Green → Blue service - latency : 20ms
100 ms
Reactive µ-service
@sendilkumarn
Reactive µ-service
In a reactive system,
every part should be
reactive
Reactive µ-service
Slide 22
Slide 22 text
@sendilkumarn
more than 750 req/s
Reactive µ-service
Slide 23
Slide 23 text
@sendilkumarn
Reactive µ-service
Slide 24
Slide 24 text
@sendilkumarn
Slide 25
Slide 25 text
@sendilkumarn
Slide 26
Slide 26 text
@sendilkumarn
Spring Reactive
Slide 27
Slide 27 text
@sendilkumarn
Spring Reactive
@PostMapping("/users")
public User createUser(@Valid @RequestBody User user) {
// Handle errors
User result = userRepository.save(user);
// do something with the result
return ResponseEntity
.created(new URI("/api/users/" + result.getId()))
.headers(HeaderUtil.createEntityCreationAlert
(...))
.body(result);
}
Spring Reactive
Slide 28
Slide 28 text
@sendilkumarn
Spring Reactive
@PostMapping("/users")
public Mono createUser(@Valid @RequestBody User user) {
// Handle errors
return userRepository.save(user)
.flatMap( // Do something with the users )
.map( result ->
return ResponseEntity
.created(new URI("/api/users/" + result.getId()))
.headers(HeaderUtil.createEntityCreationAlert
(...))
.body(result);
)
}
Reactive
Spring Reactive
Slide 29
Slide 29 text
@sendilkumarn
Spring Reactive
Gateway
Service A Service B
Message
Queue
Slide 30
Slide 30 text
@sendilkumarn
Spring Reactive
Gateway
Service A Service B
Message
Queue
reactive
reactive
reactive
reactive
Spring Reactive
Slide 31
Slide 31 text
@sendilkumarn
Spring Reactive
Spring Reactive
Slide 32
Slide 32 text
@sendilkumarn
Being Reactive makes our services responsive,
resilient, elastic, and message-driven
Spring Boot 2.0 introduced
reactive programming for spring
based applications
But that is a lot…
Slide 33
Slide 33 text
@sendilkumarn
JHipster
Slide 34
Slide 34 text
@sendilkumarn
JHipster
JHipster is a open source app. generator
Slide 35
Slide 35 text
@sendilkumarn
JHipster
JHipster is a development platform
open source app. generator
Slide 36
Slide 36 text
@sendilkumarn
JHipster
JHipster generates all bells & whistles
development platform