Yahoo Mail moving to React
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Yahoo Mail moving to React

  • 18,060 views
Uploaded on

Yahoo React meetup

Yahoo React meetup

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
18,060
On Slideshare
15,080
From Embeds
2,980
Number of Embeds
20

Actions

Shares
Downloads
31
Comments
0
Likes
27

Embeds 2,980

http://yahooeng.tumblr.com 2,483
https://twitter.com 397
http://feedly.com 32
https://www.tumblr.com 29
http://codecraig.newsblur.com 13
http://digg.com 12
http://www.newsblur.com 4
http://newsblur.com 3
http://www.google.com 3
http://hn.premii.com 2
https://tweetdeck.twitter.com 1
https://gitter.im 1
https://abava.blogspot.com 1
http://emrox.newsblur.com 1
https://schalanda.name 1
http://tumblr.tsnrose.com 1
http://reader.inthemail.org 1
https://reader.aol.com 1
http://popcron.elasticbeanstalk.com 1
http://www.hackernews.im 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Controllers ask for Data & prime models
    Models dispatch events handled by views
    Views dispatch events handled by other views
    Dispatched events causing cycle reaction
  • Actions originate from user interactions with the views
    Actions call into the dispatcher. Data to be changed is the payload of an action
    The dispatcher then invokes the callbacks that the stores have registered with it, effectively dispatching the data payload contained in the actions to all stores.
    The stores then emit a "change" event to alert the controller-views that a change to the data layer has occurred
  • Optimistic updates
    - Maintaining previous state
    Rollbacks
    Call to the community to help address
    Transitional Stores
    Error Reporting and Metric collection

Transcript

  • 1. Building Yahoo Mail over the years R e a c t M e e t u p ⎪ S e p t e m b e r 2 5 , 2 0 1 4
  • 2. Subramanyan Murali Engineering Manager, Yahoo Mail subram@yahoo-inc.com @rmsguhan
  • 3. I want to share …  History of Mail  Moving to the React way  The optimistic update use case
  • 4. A little bit of history …
  • 5. 1999 First gen C++, HTML Ajax for world peace ? 2004 Oddpost Java, Python, JS 2008 Classic PHP, JS 2010 The One PHP, YUI, JS
  • 6. Modern Mail PHP, Apache on server YUI on the client First byte flush using big pipe Shared templates between client and server C grade to A grade browser support
  • 7. Model View Controller
  • 8. Mail Storage Model Controller View Model Controller View PHPLaunch YUIWorkspace Network Proxy Server Client
  • 9. Interesting Moments
  • 10. Events Controllers ask for Data & prime models Models dispatch events handled by views Views dispatch events handled by other views Dispatched events causing cycle reaction
  • 11. Folder View List View Message View
  • 12. Controller Message View Model Delete Message Event Handler msg:remove Model Folder View Controller fld:change List View Controller Model XHR Request Web Service Success Request
  • 13. Evolving for the future
  • 14. 2015 Next gen NodeJS, React + Flux, MicroJS
  • 15. “ The Age of large platform libraries is over ”
  • 16. What we wanted Predictable flow ~ Easy Debugging Modernize the code base Isomorphic application Independently deployable components
  • 17. React + Flux
  • 18. Message View MSG_REMOVE Action Creator Folder View List View Message Store Folder Store emit-change emit-change emit-change Dispatcher callbacks
  • 19. Optimistic Updates
  • 20. Folder View List View Message View MSG_REMOVE Action Creator Message Store Folder Store emit-change emit-change emit-change Dispatcher callbacks XHR Request Web Service MSG_REMOVE_SUCCESS XHR Success
  • 21. Folder View List View Message View MSG_REMOVE Action Creator Message Store Folder Store emit-change emit-change emit-change Dispatcher callbacks XHR Request Web Service MSG_REMOVE_FAIL XHR Failure
  • 22. Transactional Stores First Byte Flush Record and Replay actions
  • 23. Community can help !
  • 24. We need to solve …  First Byte Flush for Flux applications  Debugging  Transactional Stores  XHR Responsibility, Actions or stores  Testing components  Style and Lint checks on JSX  Build versioning and bundling › Server side and on-demand
  • 25. Yahoo is contributing back
  • 26. dispatchr routr flux-router-component @mridgway github.com/yahoo/
  • 27. See you soon !