Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Agenda • Introduction • Architecture • Ways of working • Benchmark • Integrations • Learnings
Slide 2
Slide 2 text
Introduction • Problem statement • Proposed solution • Project timelines • Objectives
Slide 3
Slide 3 text
Architecture • Language decision • Framework decision • Database decision • Application structure • Resiliency/Fault-tolerance • Caching • GraphQL
Slide 4
Slide 4 text
Language Decision
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
Framework Decision
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
Database Decision
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
Application Structure
Slide 11
Slide 11 text
Application Structure
Slide 12
Slide 12 text
Fault Tolerance
Slide 13
Slide 13 text
Caching
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
Ways of Working • Pair programming • TDD • Offsite sessions
Slide 16
Slide 16 text
Pair Programming
Slide 17
Slide 17 text
TDD
Slide 18
Slide 18 text
Benchmark • Why? • Approach • Results and Observations • Assumptions • Improvements
Slide 19
Slide 19 text
graphQL inbox 10/10s
Slide 20
Slide 20 text
graphQL inbox 50/10s
Slide 21
Slide 21 text
graphQL inbox 100/10s
Slide 22
Slide 22 text
graphQL inbox 200/10s
Slide 23
Slide 23 text
graphQL inbox 400/10s
Slide 24
Slide 24 text
POST inbox 10/10s
Slide 25
Slide 25 text
POST inbox 100/100s
Slide 26
Slide 26 text
POST inbox 200/20s
Slide 27
Slide 27 text
POST inbox 400/10s
Slide 28
Slide 28 text
Get Config 10/10s
Slide 29
Slide 29 text
Get Config 100/10s
Slide 30
Slide 30 text
Get Config 200/10s
Slide 31
Slide 31 text
Get Config 500/10s
Slide 32
Slide 32 text
Post Config 50/10s
Slide 33
Slide 33 text
Post Config 100/10s
Slide 34
Slide 34 text
Post Config 200/10s
Slide 35
Slide 35 text
Post Config 500/10s
Slide 36
Slide 36 text
V1 vs V2 vs Sub ~40ms response time on average
Slide 37
Slide 37 text
Integrations • Support HTTP • API Documentation • Roadmap
Slide 38
Slide 38 text
Learnings • Ease of learning Kotlin • Transferred knowledge • Pair programming worked really well • Challenges
Slide 39
Slide 39 text
References • Notification Service Rearchitecture • API Documentation • Ktor • Kotlin • CockroachDB • Vegeta benchmark • Notification Service Repository