php and asynchronous systems
DESCRIPTION
MageConf3 presentationTRANSCRIPT
Magento
PHP and Asynchronous Communication
Magento
About myself
Eugene Tulika Magento Expert Consulting Group
Senior Developer / Team Lead
Magento
PHP in a Rocket Science Agile Time To Market
It’s a language to "solve the web problem"
Enterprise Open Source PHP Frontend / Java Backend
Magento
PHP
PHP
Magento
Asynchrony
Magento
Asynchrony in PHP
Save User information
Send e-mail “User is created”
Save Shipping information
Save Order Information
Send e-mail “Order is created”
Magento
Mail ServiceFront Server
Asynchrony in PHP
Save User information Send e-mail
“User is created”Save Shipping
information
Save Order Information Send e-mail
“Order is created”
UI
Magento
Asynchrony Architecture
Magento
Front Server
Asynchrony in PHP
Users Server
Shipment Server
Sales Server
Magento
Messages and Channels
Magento
Messages and Channels
Magento
Message Queue Concept
Messages arrived to Channel
NotifyEvent-Driven
Consumer
Poll Polling Consumer
Competing Consumers
Magento
Message Queue on PHP Based on Tables
Shared Database
ConsumerNode#2
ConsumerNode#3
ConsumerNode#1cron
cron
cron
EndpointController
Java ESB
Magento
Publish/Subscribe
Publisher
Subscriber 1
Subscriber 2
Subscriber 3
Channel
Channel
Channel
Channel
Magento
Response is Needed
Magento
Request-Reply Pattern
Magento
Synchronous blocking on PHP
PHP application
Request Channel
Reply Channel
Sync Bridge
Magento
Synchronous blocking on PHP
Requestor
Mes
sage
cha
nnel
Persisted Messages
Receiver (controller)
Magento
Request/Response Tables
Request Id Request Data
1 {“Color”:”P!nk”}
Response ID Request ID Response Data
1 Null
2 1 {“Color”:”P!nk”,“Saved”:”true”}
Magento
Your request is being proceeded
Magento
Asynchronous callback on PHP
Requestor
Mes
sage
cha
nnel
Receiver /controller/
CallbackDB
PHP application
Update
Messaging LayerBusiness Logic
Magento
UI changes
Magento
Testing with Stubs
Magento
Contacts [email protected] [email protected] http://vrann.com/