Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Monolith to Event-Driven Microservices
Search
Eko Kurniawan Khannedy
August 06, 2019
Technology
280
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Monolith to Event-Driven Microservices
Software Architecture Conference
Eko Kurniawan Khannedy
August 06, 2019
More Decks by Eko Kurniawan Khannedy
See All by Eko Kurniawan Khannedy
Refactoring
khannedy
0
370
Multi-Datacenter Kafka at Blibli.com
khannedy
2
1.6k
QA Tools - Research and Development
khannedy
0
310
Reactive Puzzle
khannedy
0
220
Event-Driven Architecture
khannedy
1
2.1k
Resilience Engineering with Hystrix and Spring
khannedy
1
600
Mocking for Unit Test using Mockito
khannedy
1
360
Centralized Configuration using Consul and Spring Cloud
khannedy
2
740
Validation Best Practice
khannedy
2
1.3k
Other Decks in Technology
See All in Technology
絵ではじめるKubernetesセキュリティ
aoi1
3
480
アクセスキーこわい やめかたと漏らさない工夫
sassssan68
1
120
omasushiというライブラリを作った
polidog
PRO
0
220
生成AIエージェントを用いた、 手動テスト手順書から自動テストへの 変換手法の検討
magicpod
0
140
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
2
920
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
あるけみー式LTスライド作成術
alchemy1115
1
210
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
840
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
230
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
340
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
180
Featured
See All Featured
Producing Creativity
orderedlist
PRO
348
41k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Exploring anti-patterns in Rails
aemeredith
3
500
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Abbi's Birthday
coloredviolet
3
10k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
Chasing Engaging Ingredients in Design
codingconduct
0
310
Code Reviewing Like a Champion
maltzj
528
40k
30 Presentation Tips
portentint
PRO
1
390
AI: The stuff that nobody shows you
jnunemaker
PRO
9
1k
Transcript
Monolith to Event-Driven Microservices Eko Kurniawan Khannedy
Eko Kurniawan • Senior Principal R&D Engineer at Blibli.com •
10 Years of Experience in IT Industry • Software Architect behind: ◦ Blibli.com New Backend System ◦ Blipay
Agenda • Microservices • Event-Driven Architecture • Hands-On using Java
Microservices
Monolith vs Microservices Application Monolith Microservices
Monolith vs Microservices Deployment Monolith Microservices
Characteristic of Microservices 1. Componentization via Services 2. Organized around
Business Capabilities 3. Products not Projects 4. Smart endpoints and dumb pipes 5. Decentralized Governance 6. Decentralized Data Management 7. Infrastructure Automation 8. Design for failure 9. Evolutionary Design https://martinfowler.com/articles/microservices.html
Componentization via Services Library Service Product Library Shipping Library Product
Service Shipping Service
Organized around Business Capabilities Merchant Product Shipping
Decentralized Data Management MySQL Mongo Elasticsearch
Continuous Delivery Infrastructure Automation Unit Test Integration Test Deploy to
Staging Application Acceptance Test Deploy to Production Post Deploy Test
Design for failure • Monitoring • Circuit Breaker • Chaos
Monkey
How Big is Microservices? • Single Responsibility • Small enough
to fit in in my head • X people per Service
Monolith • Simplicity • Consistency • Easy to Refactor •
Partial Deployment • Availability • Multiple Platform • Easy to Scale Microservices
Event-Driven Architecture
API-Driven Microservices FRONTEND CART SERVICE ORDER SERVICE PAYMENT SERVICE
API-Driven Microservices Problem FRONTEND CART SERVICE ORDER SERVICE PAYMENT SERVICE
NOTIF SERVICE
Event-Driven Microservices FRONTEND CART SERVICE ORDER SERVICE PAYMENT SERVICE NOTIF
SERVICE CART EVENT
Event-Driven Microservices FRONTEND CART SERVICE ORDER SERVICE PAYMENT SERVICE NOTIF
SERVICE CART EVENT FRAUD SERVICE
Event-Driven Microservices Problem FRONTEND CART SERVICE ORDER SERVICE PAYMENT SERVICE
NOTIF SERVICE CART EVENT FRAUD SERVICE
Event-Carried State Transfer FRONTEND CART SERVICE ORDER SERVICE PAYMENT SERVICE
NOTIF SERVICE FULL CART EVENT FRAUD SERVICE CART DETAIL CART DETAIL CART DETAIL CART DETAIL https://martinfowler.com/articles/201701-event-driven.html
API-Driven • Highly-coupled • Centralized business logic • Consistent •
Increase response time • Sync Event-Driven • Decoupling • Decentralized business logic • Eventual consistent • Reduce load on producer • Replicated data • Async
The Challenges of Event-Driven Microservices • Idempoten • Asynchronous •
Message Schema • Versioning • Tracing • Message Order • Consumer Complexity • Message Broker
Hands-On using Java
Tools Required for This Workshop • Java Development Kit version
1.8 or Higher • Apache Maven version 3 • Apache Kafka version 2.3 • MongoDB version 4 • Elasticsearch version 7.2
MonoPay • MonoPay is whitelabel system for e-Wallet • Merchant
can use MonoPay to support e-Wallet feature in their system • MonoPay support member management, topup management, purchase management and point management • MonoPay use monolith architecture
MonoPay Backend System Merchant Module Cash Module Member Module Transaction
Module Mongo DB Partner System HTTP
MonoPay Wallet Project https://github.com/khannedy/monopay-wallet
How to migrate MonoPay to Event-Driven Microservices?
Migrating MonoPay to Microservices MonoPay eWallet Mongo DB Partner System
HTTP MonoPay API
Migrating MonoPay to Microservices MonoPay eWallet Mongo DB Partner System
HTTP MonoPay API MonoPay Merchant
Migrating MonoPay to Microservices MonoPay eWallet Mongo DB Partner System
HTTP MonoPay API MonoPay Merchant MonoPay Member
Migrating MonoPay to Microservices MonoPay eWallet Mongo DB Partner System
HTTP MonoPay API MonoPay Merchant MonoPay Member MonoPay Transaction
Migrating MonoPay to Microservices Mongo DB Partner System HTTP MonoPay
API MonoPay Merchant MonoPay Member MonoPay Transaction MonoPay Cash
Migrating MonoPay to Microservices Mongo DB Partner System HTTP MonoPay
API MonoPay Merchant MonoPay Member MonoPay Transaction MonoPay Cash Mongo DB Mongo DB Mongo DB
How to Integrate between Services?
API-Driven vs Event-Driven
MonoPay Microservices https://github.com/khannedy/monopay-api https://github.com/khannedy/monopay-merchant https://github.com/khannedy/monopay-member https://github.com/khannedy/monopay-transaction https://github.com/khannedy/monopay-cash
Migrating to Event-Driven Microservices Partner System HTTP MonoPay API MonoPay
Merchant MonoPay Member MonoPay Transaction MonoPay Cash KAFKA
One more thing
Migrating to Event-Driven Microservices Partner System HTTP MonoPay API MonoPay
Merchant MonoPay Member MonoPay Transaction MonoPay Cash KAFKA MonoPay Analytic ELASTICSEARCH Kibana Cloud
MonoPay Microservices https://github.com/khannedy/monopay-analytic
Thank You!