SlideShare a Scribd company logo
Nov 9, 2019
Fukumoto Yoshiaki
EC Business Dept.
Rakuten, Inc.
2
Who am I?
Fukumoto Marcelo Yoshiaki – 29 years old
Rakuten Application Engineer
Brazilian
Japanese descendant – Nikkei
Third Generation – Sansei
Working at Rakuten since January 2019.
3
Sockets and Event Driven Architecture the power behind R-Messe
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools for giving the best User Experience
4
Sockets and Event Driven Architecture the power behind R-Messe
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools for giving the best User Experience
5
What is R-Messe?
It is a communication tool created to control the inquiries between merchant and shopper. The idea is to have
the best User Experience with the best technology we can offer.
6
7
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools for giving the best User Experience
8
What is Event Driven Archictecture?
“The event-driven architecture is made up of highly decoupled, single-purpose event processing components
that asynchronously receive and process events. ”
Richards, M (oreilly.com, 2015)
9
Change Color Event
Message: “changeColor”
Message data:
{
“color” : red”
}
Background color
WHITE
Background color
RED
10
Now it is red!
11
Pros
• The overall agility is higher. The response is
quicker to changes of environment.
• It is easy to deploy since it is naturally decoupled.
• Performance is better, since it has the ability to
execute many functions decoupled. But it is always
related to how it is architectured and developed.
• Scalability is natural too, since the listeners and
really decoupled and independent.
Cons
• It is more difficult to test. There is many more tools
for layered architecture to test, and you will need
a prepared environment to test this.
• It is more difficult to develop. It is a lot more
complicated since there will be more message
exchange and error handling conditions.
12
Front side was always event driven
Front side using all the listeners from the browser was always event based:
• focus
• blur
• keydown/keypress
• keyup
• click
• mouseover
• dblclick
• select
• drag
• submit
13
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools for giving the best User Experience
14
Bi-directional Message
15
No socket structure (HTTP Request)
Request
16
No socket structure (HTTP Request)
Request
Response
17
What to do if you want an exchange of message for example? Using HTTP.
Ask for new message
18
What to do if you want an exchange of message for example? Using HTTP.
Ask for new message
Gives new message
19
What to do if you want an exchange of message for example? Using HTTP.
Ask for new message
Gives new message
Ask for new message
20
What to do if you want an exchange of message for example? Using HTTP.
Ask for new message
Gives new message
Ask for new message
Respond that there is
no more message
21
What to do if you want an exchange of message for example? Using HTTP.
Ask for new message
Gives new message
Ask for new message
Respond that there is
no more message
Ask for new message
22
What to do if you want an exchange of message for example? Using HTTP.
Ask for new message
Gives new message
Ask for new message
Respond that there is
no more message
Ask for new message
Gives new message
23
Using Socket reduces the exchange of messages and the exchange is stateless.
Connect
24
Using Socket reduces the exchange of messages and the exchange is stateless.
Connect
Gives new message
25
Using Socket reduces the exchange of messages and the exchange is stateless.
Connect
Gives new message
Gives new message
26
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
SAD
STATUS
Employee Boss
27
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
No
SAD
STATUS
Employee Boss
28
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
No
Boss, is my salary increased?
SAD
STATUS
Employee Boss
29
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
No
Boss, is my salary increased?
No
SAD
STATUS
Employee Boss
30
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
No
Boss, is my salary increased?
No
Boss, is my salary increased?
SAD
STATUS
Employee Boss
31
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
No
Boss, is my salary increased?
No
Boss, is my salary increased?
Yes
Employee Boss
SAD
STATUS
32
Let’s use a real life example of asking for salary increase. Http requests.
Boss, is my salary increased?
No
Boss, is my salary increased?
No
Boss, is my salary increased?
Yes
HAPPY
STATUS
Employee Boss
33
It does not need to ask all the time for a salary increase
Connect
SAD
STATUS
Employee Boss
34
It does not need to ask all the time for a salary increase
Connect
Your salary increased
Employee Boss
SAD
STATUS
35
It does not need to ask all the time for a salary increase
Connect
Your salary increased
HAPPY
STATUS
Employee Boss
36
Or the salary increase can even come from another source
Connect
Your salary increased
HAPPY
STATUS CEO
Employee Boss
37
Let’s use another example on a train station, that consider how timing is important
The train arrived?
SAD
STATUS
38
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
SAD
STATUS
39
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
1 minute
SAD
STATUS
40
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
The train arrived?
1 minute
SAD
STATUS
41
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
The train arrived?
No
1 minute
SAD
STATUS
42
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
The train arrived?
No
1 minute
1 minute
SAD
STATUS
43
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
The train arrived?
No
The train arrived?
1 minute
1 minute
SAD
STATUS
44
Let’s use another example on a train station, that consider how timing is important
The train arrived?
No
The train arrived?
No
The train arrived?
Yes, but already departed
1 minute
1 minute
SAD
STATUS
45
With sockets and event based architecture, you will receive the message at the right
time
Waiting for train
SAD
STATUS
46
With sockets and event based architecture, you will receive the message at the right
time
Waiting for train
Arrived
SAD
STATUS
47
With sockets and event based architecture, you will receive the message at the right
time
Waiting for train
Arrived
HAPPY
STATUS
48
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools for giving the best User Experience
49
If we think about a merchant looking at R-Messe, you can see the message too late.
So the fastest it shows on your screen is better.
50
Our notion of speed is different now:
51
Our notion of speed is different now:
weeks
52
Our notion of speed is different now:
weeks
instant
53
The sockets are normally for instant messaging for an instant and faster interaction.
But since it is faster, why can’t we use in everything?
Maybe we can.
54
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools to improve User Experience
55
Let’s show some code!
56
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools to improve User Experience
57
If we think how to go to Sendai from Tokyo by Bus: 5h 47min
58
If we think how to go to Sendai from Tokyo by Shinkansen: 1h 56min
59
• R-Messe
• Event Driven Architecture
• Sockets
• Instant Delivery
• Code
• Notion of speed
• Tools to improve User Experience
60
What I want to show is not about sockets or event driven architecture.
The idea is how different tools can simplify our way of thinking or even improving
our possibilities. Let’s always improve, always advance.
61
What I want to show is not about sockets or event driven architecture.
The idea is how different tools can simplify our way of thinking or even improving
our possibilities. Let’s always improve, always advance.
Any questions?
R-Messe – Sockets and Event Architecture

More Related Content

PPTX
Pivots for real for LASTConf sept 2015
PDF
Greach 2018: Surviving Microservices
PPT
On the importance of done
PDF
Continuous delivery @ Diabol
PDF
From Mess To Masterpiece - JFokus 2017
PDF
MuleSoft Composer | Patna MuleSoft Meetup #14
PDF
Growing as a software craftsperson (part 2) From Pune Software Craftsmanship
PPTX
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.
Pivots for real for LASTConf sept 2015
Greach 2018: Surviving Microservices
On the importance of done
Continuous delivery @ Diabol
From Mess To Masterpiece - JFokus 2017
MuleSoft Composer | Patna MuleSoft Meetup #14
Growing as a software craftsperson (part 2) From Pune Software Craftsmanship
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.

Similar to R-Messe – Sockets and Event Architecture (20)

PDF
AsyncAPI and Springwolf: Automated documentation and more
PDF
Atlassian Executive Business Forum - LinkedIn HQ
PDF
Future of Work and Birch
PPTX
Scope definition of ticketing automation bangladesh
PPTX
Scope Definition of Online Ticketing System
PDF
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
PPTX
Hacking your ConnectWise Manage by Stack Advisors - Automation Nation 2018
PDF
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
PDF
Learning Robotic Process Automation-1-80
PDF
ECC-Net Web presence, Lars Boström
PPTX
Techniques to decompose a user story Techniques
PDF
AI - Your Startup Sidekick (Leveraging AI to Bootstrap a Lean Startup).pdf
PDF
"Grokking System Design interview for Front-end engineer", Oleksii Levzhynskyi
PDF
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
PDF
Building data pipelines: from simple to more advanced - hands-on experience /...
PDF
How to create awesome customer experiences
PDF
UiPath Community Day Amsterdam presentations
PPT
presentation slides
PDF
Improve existing code with confidence, supported by unit tests
PDF
Introduction to Apache Beam
AsyncAPI and Springwolf: Automated documentation and more
Atlassian Executive Business Forum - LinkedIn HQ
Future of Work and Birch
Scope definition of ticketing automation bangladesh
Scope Definition of Online Ticketing System
.NET Fest 2019. Eran Stiller. 6 Lessons I Learned on My Journey from Monolith...
Hacking your ConnectWise Manage by Stack Advisors - Automation Nation 2018
The Hitchhiker's Guide to Servo Contributor [COSCUP 2020]
Learning Robotic Process Automation-1-80
ECC-Net Web presence, Lars Boström
Techniques to decompose a user story Techniques
AI - Your Startup Sidekick (Leveraging AI to Bootstrap a Lean Startup).pdf
"Grokking System Design interview for Front-end engineer", Oleksii Levzhynskyi
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Building data pipelines: from simple to more advanced - hands-on experience /...
How to create awesome customer experiences
UiPath Community Day Amsterdam presentations
presentation slides
Improve existing code with confidence, supported by unit tests
Introduction to Apache Beam
Ad

More from Rakuten Group, Inc. (20)

PDF
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
PPTX
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
PDF
楽天における安全な秘匿情報管理への道のり
PDF
What Makes Software Green?
PDF
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
PDF
DataSkillCultureを浸透させる楽天の取り組み
PDF
大規模なリアルタイム監視の導入と展開
PDF
楽天における大規模データベースの運用
PDF
楽天サービスを支えるネットワークインフラストラクチャー
PDF
楽天の規模とクラウドプラットフォーム統括部の役割
PDF
Rakuten Services and Infrastructure Team.pdf
PDF
The Data Platform Administration Handling the 100 PB.pdf
PDF
Supporting Internal Customers as Technical Account Managers.pdf
PDF
Making Cloud Native CI_CD Services.pdf
PDF
How We Defined Our Own Cloud.pdf
PDF
Travel & Leisure Platform Department's tech info
PDF
Travel & Leisure Platform Department's tech info
PDF
OWASPTop10_Introduction
PDF
Introduction of GORA API Group technology
PDF
100PBを越えるデータプラットフォームの実情
EPSS (Exploit Prediction Scoring System)モニタリングツールの開発
コードレビュー改善のためにJenkinsとIntelliJ IDEAのプラグインを自作してみた話
楽天における安全な秘匿情報管理への道のり
What Makes Software Green?
Simple and Effective Knowledge-Driven Query Expansion for QA-Based Product At...
DataSkillCultureを浸透させる楽天の取り組み
大規模なリアルタイム監視の導入と展開
楽天における大規模データベースの運用
楽天サービスを支えるネットワークインフラストラクチャー
楽天の規模とクラウドプラットフォーム統括部の役割
Rakuten Services and Infrastructure Team.pdf
The Data Platform Administration Handling the 100 PB.pdf
Supporting Internal Customers as Technical Account Managers.pdf
Making Cloud Native CI_CD Services.pdf
How We Defined Our Own Cloud.pdf
Travel & Leisure Platform Department's tech info
Travel & Leisure Platform Department's tech info
OWASPTop10_Introduction
Introduction of GORA API Group technology
100PBを越えるデータプラットフォームの実情
Ad

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
A Presentation on Artificial Intelligence
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Spectroscopy.pptx food analysis technology
Chapter 3 Spatial Domain Image Processing.pdf
Electronic commerce courselecture one. Pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
A Presentation on Artificial Intelligence
“AI and Expert System Decision Support & Business Intelligence Systems”
Dropbox Q2 2025 Financial Results & Investor Presentation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The AUB Centre for AI in Media Proposal.docx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
A comparative analysis of optical character recognition models for extracting...
Encapsulation_ Review paper, used for researhc scholars
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25-Week II
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectroscopy.pptx food analysis technology

R-Messe – Sockets and Event Architecture

  • 1. Nov 9, 2019 Fukumoto Yoshiaki EC Business Dept. Rakuten, Inc.
  • 2. 2 Who am I? Fukumoto Marcelo Yoshiaki – 29 years old Rakuten Application Engineer Brazilian Japanese descendant – Nikkei Third Generation – Sansei Working at Rakuten since January 2019.
  • 3. 3 Sockets and Event Driven Architecture the power behind R-Messe • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools for giving the best User Experience
  • 4. 4 Sockets and Event Driven Architecture the power behind R-Messe • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools for giving the best User Experience
  • 5. 5 What is R-Messe? It is a communication tool created to control the inquiries between merchant and shopper. The idea is to have the best User Experience with the best technology we can offer.
  • 6. 6
  • 7. 7 • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools for giving the best User Experience
  • 8. 8 What is Event Driven Archictecture? “The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events. ” Richards, M (oreilly.com, 2015)
  • 9. 9 Change Color Event Message: “changeColor” Message data: { “color” : red” } Background color WHITE Background color RED
  • 10. 10 Now it is red!
  • 11. 11 Pros • The overall agility is higher. The response is quicker to changes of environment. • It is easy to deploy since it is naturally decoupled. • Performance is better, since it has the ability to execute many functions decoupled. But it is always related to how it is architectured and developed. • Scalability is natural too, since the listeners and really decoupled and independent. Cons • It is more difficult to test. There is many more tools for layered architecture to test, and you will need a prepared environment to test this. • It is more difficult to develop. It is a lot more complicated since there will be more message exchange and error handling conditions.
  • 12. 12 Front side was always event driven Front side using all the listeners from the browser was always event based: • focus • blur • keydown/keypress • keyup • click • mouseover • dblclick • select • drag • submit
  • 13. 13 • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools for giving the best User Experience
  • 15. 15 No socket structure (HTTP Request) Request
  • 16. 16 No socket structure (HTTP Request) Request Response
  • 17. 17 What to do if you want an exchange of message for example? Using HTTP. Ask for new message
  • 18. 18 What to do if you want an exchange of message for example? Using HTTP. Ask for new message Gives new message
  • 19. 19 What to do if you want an exchange of message for example? Using HTTP. Ask for new message Gives new message Ask for new message
  • 20. 20 What to do if you want an exchange of message for example? Using HTTP. Ask for new message Gives new message Ask for new message Respond that there is no more message
  • 21. 21 What to do if you want an exchange of message for example? Using HTTP. Ask for new message Gives new message Ask for new message Respond that there is no more message Ask for new message
  • 22. 22 What to do if you want an exchange of message for example? Using HTTP. Ask for new message Gives new message Ask for new message Respond that there is no more message Ask for new message Gives new message
  • 23. 23 Using Socket reduces the exchange of messages and the exchange is stateless. Connect
  • 24. 24 Using Socket reduces the exchange of messages and the exchange is stateless. Connect Gives new message
  • 25. 25 Using Socket reduces the exchange of messages and the exchange is stateless. Connect Gives new message Gives new message
  • 26. 26 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? SAD STATUS Employee Boss
  • 27. 27 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? No SAD STATUS Employee Boss
  • 28. 28 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? No Boss, is my salary increased? SAD STATUS Employee Boss
  • 29. 29 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? No Boss, is my salary increased? No SAD STATUS Employee Boss
  • 30. 30 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? No Boss, is my salary increased? No Boss, is my salary increased? SAD STATUS Employee Boss
  • 31. 31 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? No Boss, is my salary increased? No Boss, is my salary increased? Yes Employee Boss SAD STATUS
  • 32. 32 Let’s use a real life example of asking for salary increase. Http requests. Boss, is my salary increased? No Boss, is my salary increased? No Boss, is my salary increased? Yes HAPPY STATUS Employee Boss
  • 33. 33 It does not need to ask all the time for a salary increase Connect SAD STATUS Employee Boss
  • 34. 34 It does not need to ask all the time for a salary increase Connect Your salary increased Employee Boss SAD STATUS
  • 35. 35 It does not need to ask all the time for a salary increase Connect Your salary increased HAPPY STATUS Employee Boss
  • 36. 36 Or the salary increase can even come from another source Connect Your salary increased HAPPY STATUS CEO Employee Boss
  • 37. 37 Let’s use another example on a train station, that consider how timing is important The train arrived? SAD STATUS
  • 38. 38 Let’s use another example on a train station, that consider how timing is important The train arrived? No SAD STATUS
  • 39. 39 Let’s use another example on a train station, that consider how timing is important The train arrived? No 1 minute SAD STATUS
  • 40. 40 Let’s use another example on a train station, that consider how timing is important The train arrived? No The train arrived? 1 minute SAD STATUS
  • 41. 41 Let’s use another example on a train station, that consider how timing is important The train arrived? No The train arrived? No 1 minute SAD STATUS
  • 42. 42 Let’s use another example on a train station, that consider how timing is important The train arrived? No The train arrived? No 1 minute 1 minute SAD STATUS
  • 43. 43 Let’s use another example on a train station, that consider how timing is important The train arrived? No The train arrived? No The train arrived? 1 minute 1 minute SAD STATUS
  • 44. 44 Let’s use another example on a train station, that consider how timing is important The train arrived? No The train arrived? No The train arrived? Yes, but already departed 1 minute 1 minute SAD STATUS
  • 45. 45 With sockets and event based architecture, you will receive the message at the right time Waiting for train SAD STATUS
  • 46. 46 With sockets and event based architecture, you will receive the message at the right time Waiting for train Arrived SAD STATUS
  • 47. 47 With sockets and event based architecture, you will receive the message at the right time Waiting for train Arrived HAPPY STATUS
  • 48. 48 • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools for giving the best User Experience
  • 49. 49 If we think about a merchant looking at R-Messe, you can see the message too late. So the fastest it shows on your screen is better.
  • 50. 50 Our notion of speed is different now:
  • 51. 51 Our notion of speed is different now: weeks
  • 52. 52 Our notion of speed is different now: weeks instant
  • 53. 53 The sockets are normally for instant messaging for an instant and faster interaction. But since it is faster, why can’t we use in everything? Maybe we can.
  • 54. 54 • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools to improve User Experience
  • 56. 56 • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools to improve User Experience
  • 57. 57 If we think how to go to Sendai from Tokyo by Bus: 5h 47min
  • 58. 58 If we think how to go to Sendai from Tokyo by Shinkansen: 1h 56min
  • 59. 59 • R-Messe • Event Driven Architecture • Sockets • Instant Delivery • Code • Notion of speed • Tools to improve User Experience
  • 60. 60 What I want to show is not about sockets or event driven architecture. The idea is how different tools can simplify our way of thinking or even improving our possibilities. Let’s always improve, always advance.
  • 61. 61 What I want to show is not about sockets or event driven architecture. The idea is how different tools can simplify our way of thinking or even improving our possibilities. Let’s always improve, always advance. Any questions?