Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Reactive Manifesto
Developing Real-time Leaderboards
Binoy Shah
Technical Architect
Washington Post (Games)
What is The Reactive Manifesto
http://www.reactivemanifesto.org/
Strive to be:
 Responsive
 Resilient
 Elastic
 Asynch...
 Philosophy: Convention over configuration
 Lightweight & Stateless
 Asynchronous & Non-blocking
 Message Driven [Acto...
 Realtime Game play & Leaderboards
 Millions of players
 Millions of Player scores x 1000's of Games
 Individual Playe...
Leaderboards – Dense Ranking
Leaderboards - Initial Performance
RDBMS Performance for calculating player Dense rank
# of Player Scores Response Times (...
Our hero…
Redis NoSQL Server
Leaderboards - Solution
What is Redis?
 REmote DIctionary Server
 Open source (http://redis.io) since 2009
 Advanced in...
Leaderboards - Solution
Available in-memory data structure in Redis:
 Hashes 
 List
 Sets
 Sorted Sets 
 Key Value
Leaderboards – DB vs Redis
Load Test 30 million scores, 100k players, 100 leaderboards
Leaderboards - Stack
Leaderboards AWS Stack
Leaderboards…The Tech
Leading edge technology stack:
• Scala
• Java 8
• Play Framework
• Redis 3.0 NoSql DB
• JSON ( RESTf...
Leaderboards…The Tech
Leaderboard Stack [ Deployment Architecture ]
Leaderboards – Live and Kicking !!
 Introduced for 'Politics & Pints' section articles
 Switched on as default feature o...
Key Takeaways
Design for simplicity
 Simplicity is key to being responsive
Develop iteratively and incrementally
 Deve...
Questions
Prochain SlideShare
Chargement dans…5
×

Reactive Manifesto - Developing Real-time Leaderboards

Case study into adoption of Reactive Manifesto,Play framework, Redis to create real-time leaderboards application

  • Identifiez-vous pour voir les commentaires

Reactive Manifesto - Developing Real-time Leaderboards

  1. 1. Reactive Manifesto Developing Real-time Leaderboards Binoy Shah Technical Architect Washington Post (Games)
  2. 2. What is The Reactive Manifesto http://www.reactivemanifesto.org/ Strive to be:  Responsive  Resilient  Elastic  Asynchronous
  3. 3.  Philosophy: Convention over configuration  Lightweight & Stateless  Asynchronous & Non-blocking  Message Driven [Actor based core framework]  Resilient & Ops - Friendly  Write code in Java and/or Scala  Integrates well with Spring [OMG!!]  Simple API Play Framework
  4. 4.  Realtime Game play & Leaderboards  Millions of players  Millions of Player scores x 1000's of Games  Individual Player Rank [Dense Rank]  Various Leaderboard rankings • Per quiz • Per category • Global Leaderboards
  5. 5. Leaderboards – Dense Ranking
  6. 6. Leaderboards - Initial Performance RDBMS Performance for calculating player Dense rank # of Player Scores Response Times (ms) Oracle Response Times (ms) MySQL User Experience 500,000 720 690 1,000,000 3454 3645 10,000,000 7662 7731 30,000,000 45,000 43,000 So are we doomed??
  7. 7. Our hero… Redis NoSQL Server
  8. 8. Leaderboards - Solution What is Redis?  REmote DIctionary Server  Open source (http://redis.io) since 2009  Advanced in-memory key-value data-structure server
  9. 9. Leaderboards - Solution Available in-memory data structure in Redis:  Hashes   List  Sets  Sorted Sets   Key Value
  10. 10. Leaderboards – DB vs Redis Load Test 30 million scores, 100k players, 100 leaderboards
  11. 11. Leaderboards - Stack Leaderboards AWS Stack
  12. 12. Leaderboards…The Tech Leading edge technology stack: • Scala • Java 8 • Play Framework • Redis 3.0 NoSql DB • JSON ( RESTful APIs ) • AngularJS • Bootstrap ( JS Library • Oracle 11g
  13. 13. Leaderboards…The Tech Leaderboard Stack [ Deployment Architecture ]
  14. 14. Leaderboards – Live and Kicking !!  Introduced for 'Politics & Pints' section articles  Switched on as default feature of all Quiz games  Logged in players can view participate and view Leaderboards
  15. 15. Key Takeaways Design for simplicity  Simplicity is key to being responsive Develop iteratively and incrementally  Development process is responsive, it can scale well to changing requirements Optimize your application in phases Load test application with worst case scenario in mind  Forges path for scaling and being more elastic Stress test your application  Shows you bottlenecks in the system and help in optimizing the bottleneck
  16. 16. Questions

×