180 likes | 390 Views
Large-Scale Distributed Systems. Bwin poker - a real world example. Henrik Lagercrantz Senior Systems Architect henrik.lagercrantz@bwin.org. Agenda. About bwin Games and online poker Challenges in a large-scale distributed system The P5 poker engine Q&A. bwin Games. Online gaming
E N D
Large-Scale Distributed Systems Bwin poker - a real world example Henrik Lagercrantz Senior Systems Architect henrik.lagercrantz@bwin.org
Agenda About bwin Games and online poker Challenges in a large-scale distributed system The P5 poker engine Q&A
bwin Games Online gaming Subsidiary of bwin AG ~400 employees in Sthlm Focus on online poker
Some Numbers 14 million registered customers 45k players online at peak 800k player sessions per day 7 million poker rounds played per day 28 million poker hands dealt per day
Handshake Quiz … Request req = awaitRequest() boolean auth = authenticate(req) if (auth) send(new LoginOk()) activateEncryption() else send(new LoginFailed()) … The Client The Server … send(new LoginRequest(“apa”)) LoginResponse resp = awaitResponse() if (isLoginOk(resp)) activateEncryption() send(new Message(“hello!”)) else print(“doh!”) … What’s wrong with this code?
Requirements • Handle 100k concurrent players • 99.9% availability • Wide range of integration scenarios • Operator diversification • High security standards • Support regulatory constraints • Highly maintainable • …
CAP Theorem • Consistency • Availability • Partition-tolerance
Start decomposing… • Find a table • View ongoing games • Play poker • Chat • Process completed rounds • Route client/server communication • Register for a tournament • Create & schedule a new tournament • …
Summary • Differentiate between essential complexity and accidental complexity! • Understand the problem domain • CAP theorem – “it’s a trade-off” • Functional decomposition is key!
http://bwingames.se For questions regarding internship, thesis work, etc, contact Jonas Rundberg -jonas.rundberg@bwin.org Also feel free to send me (Henrik) email if you have any questions/thoughts/ideas around the technical stuff – henrik.lagercrantz@bwin.org Henrik Lagercrantz Senior Systems Architect henrik.lagercrantz@bwin.org