SlideShare a Scribd company logo
Saturday, 27th July, 2013
Introduction and Background
 Sajit Vasudevan, Technical Architect, Cognizant
Technology Solutions
 Nirmalya Sengupta, Software Craftsman and Coach,
CeeZone Consulting
 Is to show that
 Complex projects can be executed by
following Scrum
 Adaptability to emerging architectural
needs is achievable
 Adoption of Scrum mindset helps in
succeeding
 Is to give some concrete examples
Overview
Project Background
Dutch company – Online lottery giant,
decided to enter Online Poker market
Scope: Building a complete offering of
online betting Poker game environment
(first version in 12 months)
Technology choices: Java, C++, GWT,Test
Scripting, Linux, MySQL, RabbitMQ, XUnit,
Cruisecontrol, Artifactory, Maven,
RedDwarf
Application: a bird’s eye view
Player Portal
Game Server
Lobby Server
Database
RabbitMQ
Tournament
Server
Poker Lobby – showing all table types, tournament types etc
Poker lobby – Tables list
Game table
Servers must be ...
 Robust
 Network ready
 Support for ‘Statefulness’
 Easy to interface with external systems
 Highly threaded
 Minimum supportable concurrent player base: ~20000
 Logged in players don't always play but add load
 Speed and Order of message exchange between Client
and Server are of essence
Crucial Challenges
 Inherently asynchronous
 Arbitrarily fired Timers affect software's behaviour
 Players may decide to sit out and re-join anytime
 Network connection with player can drop anytime: game
must continue
 Randomness must be satisfactorily built in and proven
(legal requirement)
 Game History must be retained (legal requirement)
 Multiple simultaneous tables, Multiple simultaneous
tournaments
Example of asynchronous behaviour
P1
P2P4
P3
step1. P2 plays
step2. P3 sits-out /
gets disconnected
NEW HAND!
step3. Hand over!
ASYNCHRONOUS
MESSAGE!
Now P3 is
informed of
new Hand
allowed to re-
join
Tricky to test software which..
is inherently asynchronous
is supposed to support many users, while
maintaining performance
is asking testers to be good/bad Poker players
is affected indeterminately by Timers (arbitrariness)
requires preservation of history of every move
is expected to display minimum latency always
`
Infrastructure - revisited
Player Portal
Game Server
Lobby Server
Database
RabbitMQ
Tournament
Server
.
.
.
.
.
.
.
.
...
.
BOTs
Human Players
JMX Console
Some initial Architectural
decisions
 Game logic implemented as a handcrafted FSM
 Game Server separate from Tournament Server
 All components inside a Game/Tournament Server
communicate through messages
 { Game | Tournament | Lobby } server exchange
information through Database
 Clients ‘pull’ information from Lobby Server
Poker Lobby – showing all table types, tournament types etc
Problems popped up: Pig headed
or headless chicken
 Understanding of tournament server was clearer over
time
 Performance bottleneck:
 Identified earlier that lobby would be heavily loaded
 Clients ‘pulling’ information from Lobby Server was a
bottleneck
 Exchanging information through Database was
difficult
 Plugging in 3rd party authentication mechanism was not
straightforward
Architectural adaptations led to
 Replacing Game Server with Tournament Server
 We realised that every game played can be considered to be a
part of ‘default’ tournament with no competition
 Game/Tournament and Lobby Servers decoupling
through a Queue
 Lobby Server keeps its own database
 Lobby Server gets latest update from queue
 Previous updates can be forgotten – saves memory and
processing
Some architectural changes made..
 Replaced Game Server with Tournament Server
 We realised that every game played can be considered to be a
part of ‘default’ tournament with no competition
 Game/Tournament and Lobby Servers decoupled
through a Queue
 Lobby Server keeps its own database
 Lobby Server gets latest update from queue
 Previous updates can be forgotten – saves memory and
processing
Building functionality
 Significant focus on unit testing
 Regular and frequent builds
 By not having adequate automated tests, we paid the
price in
 Incorrectly calculating how to divide money at
stake, amongst players
 Incorrectly recording the HandHistory of games
(both of the above, legal requirements and hence,
extremely important)
 Debugging effort and cost was huge
Our Scrum experience
reminds us that
 Collaboration between product management,
developers, testers and architect is crucial
 Changes from the product management could be
accommodated at any point of time
 Architectural alterations can be made to the initial
architecture
Brickbats

More Related Content

Similar to Sgin2013 scrum accomplished-mmog-sajitvasudevan

Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
James Gwertzman
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.js
Xie ChengChao
 
Cloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and OutlookCloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and Outlook
Academia Sinica
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
iFunFactory Inc.
 
How to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer GamesHow to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer Games
Cloudflare
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf eu
Xie ChengChao
 
Php day2013 sports_statistics
Php day2013 sports_statisticsPhp day2013 sports_statistics
Php day2013 sports_statistics
Tobias Josefsson
 
Movi presentation Singapore video tech meetup
Movi presentation Singapore video tech meetupMovi presentation Singapore video tech meetup
Movi presentation Singapore video tech meetup
Lars-Erik M Ravn
 
Dedicated Game Servers
Dedicated Game ServersDedicated Game Servers
Dedicated Game Servers
webhostingguy
 
Online games: a real-time problem for the network
Online games: a real-time problem for the networkOnline games: a real-time problem for the network
Online games: a real-time problem for the network
Jose Saldana
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
Docker, Inc.
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
Noam Gat
 
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Amazon Web Services Korea
 
Fyp ca4 yss_ver2
Fyp ca4 yss_ver2Fyp ca4 yss_ver2
Fyp ca4 yss_ver2
Sishuo Yang
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout
Amazon Web Services
 
Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...
Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...
Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...
Chris Melissinos
 
ARISE
ARISEARISE
ARISE
kaptoxic
 
All In - Final Presentation
All In - Final PresentationAll In - Final Presentation
All In - Final Presentation
freddiesulit
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderer
tobias_persson
 

Similar to Sgin2013 scrum accomplished-mmog-sajitvasudevan (20)

Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game GloballyBehind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
Behind the Scenes: Deploying a Low-Latency Multiplayer Game Globally
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.js
 
Cloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and OutlookCloud Gaming Onward: Research Opportunities and Outlook
Cloud Gaming Onward: Research Opportunities and Outlook
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
How to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer GamesHow to Plan for Performance and Scale for Multiplayer Games
How to Plan for Performance and Scale for Multiplayer Games
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf eu
 
Php day2013 sports_statistics
Php day2013 sports_statisticsPhp day2013 sports_statistics
Php day2013 sports_statistics
 
Movi presentation Singapore video tech meetup
Movi presentation Singapore video tech meetupMovi presentation Singapore video tech meetup
Movi presentation Singapore video tech meetup
 
Dedicated Game Servers
Dedicated Game ServersDedicated Game Servers
Dedicated Game Servers
 
Online games: a real-time problem for the network
Online games: a real-time problem for the networkOnline games: a real-time problem for the network
Online games: a real-time problem for the network
 
Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)Building Multiplayer Games (w/ Unity)
Building Multiplayer Games (w/ Unity)
 
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임을 위한 아마존웹서비스(AWS) (김일호 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
Fyp ca4 yss_ver2
Fyp ca4 yss_ver2Fyp ca4 yss_ver2
Fyp ca4 yss_ver2
 
Supersize your production pipe enjmin 2013 v1.1 hd
Supersize your production pipe    enjmin 2013 v1.1 hdSupersize your production pipe    enjmin 2013 v1.1 hd
Supersize your production pipe enjmin 2013 v1.1 hd
 
Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout Deploying a Low-Latency Multiplayer Game Globally: Loadout
Deploying a Low-Latency Multiplayer Game Globally: Loadout
 
Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...
Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...
Project Darkstar - Perpetual Entertainment presentation at the 2007 Austin Ga...
 
ARISE
ARISEARISE
ARISE
 
All In - Final Presentation
All In - Final PresentationAll In - Final Presentation
All In - Final Presentation
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderer
 

More from India Scrum Enthusiasts Community

Deciphering Agile Big Data
Deciphering Agile Big DataDeciphering Agile Big Data
Deciphering Agile Big Data
India Scrum Enthusiasts Community
 
“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...
“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...
“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...
India Scrum Enthusiasts Community
 
Rubber Meets the Road
Rubber Meets the RoadRubber Meets the Road
Rubber Meets the Road
India Scrum Enthusiasts Community
 
Can Agile Enthusiasm See The Organization Through?
Can Agile Enthusiasm See The Organization Through?Can Agile Enthusiasm See The Organization Through?
Can Agile Enthusiasm See The Organization Through?
India Scrum Enthusiasts Community
 
Agile​ ​HR​ ​From​ ​the​ ​trenches
Agile​ ​HR​ ​From​ ​the​ ​trenchesAgile​ ​HR​ ​From​ ​the​ ​trenches
Agile​ ​HR​ ​From​ ​the​ ​trenches
India Scrum Enthusiasts Community
 
Evolutionary Change
Evolutionary ChangeEvolutionary Change
Software 4.0 : “How” of Building Software Driven Business
Software 4.0 : “How” of Building Software Driven BusinessSoftware 4.0 : “How” of Building Software Driven Business
Software 4.0 : “How” of Building Software Driven Business
India Scrum Enthusiasts Community
 
Agile Digital Architecture
Agile Digital ArchitectureAgile Digital Architecture
Agile Digital Architecture
India Scrum Enthusiasts Community
 
Governance mechanism to further business agility
Governance mechanism to further business agilityGovernance mechanism to further business agility
Governance mechanism to further business agility
India Scrum Enthusiasts Community
 
Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...
Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...
Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...
India Scrum Enthusiasts Community
 
Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?
Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?
Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?
India Scrum Enthusiasts Community
 
Wave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership RedefinedWave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership Redefined
India Scrum Enthusiasts Community
 
Agile Engineering Environment – 2017
Agile Engineering Environment – 2017Agile Engineering Environment – 2017
Agile Engineering Environment – 2017
India Scrum Enthusiasts Community
 
Management for Agility and Outcomes
Management for Agility and OutcomesManagement for Agility and Outcomes
Management for Agility and Outcomes
India Scrum Enthusiasts Community
 
Agile Mindset Shifting: Agile For All
Agile Mindset Shifting: Agile For AllAgile Mindset Shifting: Agile For All
Agile Mindset Shifting: Agile For All
India Scrum Enthusiasts Community
 
Agile Engineering Environment – 2017
Agile Engineering Environment – 2017Agile Engineering Environment – 2017
Agile Engineering Environment – 2017
India Scrum Enthusiasts Community
 
Wave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership RedefinedWave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership Redefined
India Scrum Enthusiasts Community
 
Five (Oops!) Six Mistakes You are Making as a Leader
Five (Oops!) Six Mistakes You are Making as a LeaderFive (Oops!) Six Mistakes You are Making as a Leader
Five (Oops!) Six Mistakes You are Making as a Leader
India Scrum Enthusiasts Community
 
Empower the Forbidden Power Players
Empower the Forbidden Power PlayersEmpower the Forbidden Power Players
Empower the Forbidden Power Players
India Scrum Enthusiasts Community
 
Agility in Education System for Digital India
Agility in Education System for Digital IndiaAgility in Education System for Digital India
Agility in Education System for Digital India
India Scrum Enthusiasts Community
 

More from India Scrum Enthusiasts Community (20)

Deciphering Agile Big Data
Deciphering Agile Big DataDeciphering Agile Big Data
Deciphering Agile Big Data
 
“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...
“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...
“How We Learnt to Stop Worrying and Live with Uncertainty” – Case Studies fro...
 
Rubber Meets the Road
Rubber Meets the RoadRubber Meets the Road
Rubber Meets the Road
 
Can Agile Enthusiasm See The Organization Through?
Can Agile Enthusiasm See The Organization Through?Can Agile Enthusiasm See The Organization Through?
Can Agile Enthusiasm See The Organization Through?
 
Agile​ ​HR​ ​From​ ​the​ ​trenches
Agile​ ​HR​ ​From​ ​the​ ​trenchesAgile​ ​HR​ ​From​ ​the​ ​trenches
Agile​ ​HR​ ​From​ ​the​ ​trenches
 
Evolutionary Change
Evolutionary ChangeEvolutionary Change
Evolutionary Change
 
Software 4.0 : “How” of Building Software Driven Business
Software 4.0 : “How” of Building Software Driven BusinessSoftware 4.0 : “How” of Building Software Driven Business
Software 4.0 : “How” of Building Software Driven Business
 
Agile Digital Architecture
Agile Digital ArchitectureAgile Digital Architecture
Agile Digital Architecture
 
Governance mechanism to further business agility
Governance mechanism to further business agilityGovernance mechanism to further business agility
Governance mechanism to further business agility
 
Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...
Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...
Opening the Mainframe world to Mobile Ecosystem in a seamless and beneficial ...
 
Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?
Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?
Workplace Happiness - Is Business Agility Taking us Towards Happy Workplaces?
 
Wave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership RedefinedWave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership Redefined
 
Agile Engineering Environment – 2017
Agile Engineering Environment – 2017Agile Engineering Environment – 2017
Agile Engineering Environment – 2017
 
Management for Agility and Outcomes
Management for Agility and OutcomesManagement for Agility and Outcomes
Management for Agility and Outcomes
 
Agile Mindset Shifting: Agile For All
Agile Mindset Shifting: Agile For AllAgile Mindset Shifting: Agile For All
Agile Mindset Shifting: Agile For All
 
Agile Engineering Environment – 2017
Agile Engineering Environment – 2017Agile Engineering Environment – 2017
Agile Engineering Environment – 2017
 
Wave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership RedefinedWave 2 of Agile: Agile Leadership Redefined
Wave 2 of Agile: Agile Leadership Redefined
 
Five (Oops!) Six Mistakes You are Making as a Leader
Five (Oops!) Six Mistakes You are Making as a LeaderFive (Oops!) Six Mistakes You are Making as a Leader
Five (Oops!) Six Mistakes You are Making as a Leader
 
Empower the Forbidden Power Players
Empower the Forbidden Power PlayersEmpower the Forbidden Power Players
Empower the Forbidden Power Players
 
Agility in Education System for Digital India
Agility in Education System for Digital IndiaAgility in Education System for Digital India
Agility in Education System for Digital India
 

Recently uploaded

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 

Recently uploaded (20)

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 

Sgin2013 scrum accomplished-mmog-sajitvasudevan

  • 2. Introduction and Background  Sajit Vasudevan, Technical Architect, Cognizant Technology Solutions  Nirmalya Sengupta, Software Craftsman and Coach, CeeZone Consulting
  • 3.  Is to show that  Complex projects can be executed by following Scrum  Adaptability to emerging architectural needs is achievable  Adoption of Scrum mindset helps in succeeding  Is to give some concrete examples Overview
  • 4. Project Background Dutch company – Online lottery giant, decided to enter Online Poker market Scope: Building a complete offering of online betting Poker game environment (first version in 12 months) Technology choices: Java, C++, GWT,Test Scripting, Linux, MySQL, RabbitMQ, XUnit, Cruisecontrol, Artifactory, Maven, RedDwarf
  • 5. Application: a bird’s eye view Player Portal Game Server Lobby Server Database RabbitMQ Tournament Server
  • 6. Poker Lobby – showing all table types, tournament types etc
  • 7. Poker lobby – Tables list
  • 9. Servers must be ...  Robust  Network ready  Support for ‘Statefulness’  Easy to interface with external systems  Highly threaded  Minimum supportable concurrent player base: ~20000  Logged in players don't always play but add load  Speed and Order of message exchange between Client and Server are of essence
  • 10. Crucial Challenges  Inherently asynchronous  Arbitrarily fired Timers affect software's behaviour  Players may decide to sit out and re-join anytime  Network connection with player can drop anytime: game must continue  Randomness must be satisfactorily built in and proven (legal requirement)  Game History must be retained (legal requirement)  Multiple simultaneous tables, Multiple simultaneous tournaments
  • 11. Example of asynchronous behaviour P1 P2P4 P3 step1. P2 plays step2. P3 sits-out / gets disconnected NEW HAND! step3. Hand over! ASYNCHRONOUS MESSAGE! Now P3 is informed of new Hand allowed to re- join
  • 12. Tricky to test software which.. is inherently asynchronous is supposed to support many users, while maintaining performance is asking testers to be good/bad Poker players is affected indeterminately by Timers (arbitrariness) requires preservation of history of every move is expected to display minimum latency always
  • 13. ` Infrastructure - revisited Player Portal Game Server Lobby Server Database RabbitMQ Tournament Server . . . . . . . . ... . BOTs Human Players JMX Console
  • 14. Some initial Architectural decisions  Game logic implemented as a handcrafted FSM  Game Server separate from Tournament Server  All components inside a Game/Tournament Server communicate through messages  { Game | Tournament | Lobby } server exchange information through Database  Clients ‘pull’ information from Lobby Server
  • 15. Poker Lobby – showing all table types, tournament types etc
  • 16. Problems popped up: Pig headed or headless chicken  Understanding of tournament server was clearer over time  Performance bottleneck:  Identified earlier that lobby would be heavily loaded  Clients ‘pulling’ information from Lobby Server was a bottleneck  Exchanging information through Database was difficult  Plugging in 3rd party authentication mechanism was not straightforward
  • 17. Architectural adaptations led to  Replacing Game Server with Tournament Server  We realised that every game played can be considered to be a part of ‘default’ tournament with no competition  Game/Tournament and Lobby Servers decoupling through a Queue  Lobby Server keeps its own database  Lobby Server gets latest update from queue  Previous updates can be forgotten – saves memory and processing
  • 18. Some architectural changes made..  Replaced Game Server with Tournament Server  We realised that every game played can be considered to be a part of ‘default’ tournament with no competition  Game/Tournament and Lobby Servers decoupled through a Queue  Lobby Server keeps its own database  Lobby Server gets latest update from queue  Previous updates can be forgotten – saves memory and processing
  • 19. Building functionality  Significant focus on unit testing  Regular and frequent builds  By not having adequate automated tests, we paid the price in  Incorrectly calculating how to divide money at stake, amongst players  Incorrectly recording the HandHistory of games (both of the above, legal requirements and hence, extremely important)  Debugging effort and cost was huge
  • 20. Our Scrum experience reminds us that  Collaboration between product management, developers, testers and architect is crucial  Changes from the product management could be accommodated at any point of time  Architectural alterations can be made to the initial architecture