Historically, there are two models of handling serious loads:
(a) massively-multithreaded (request-centered with inter-thread synchronization between the threads) and
(b) message-passing (including event-driven).
Currently, in the industry there is a strong trend moving from massively-multithreaded systems (which were extremely popular in 90s and 2000s), towards message-passing Shared-Nothing systems.
To find out why it is the case - we'll try to make two teams, each team representing one of these models, and will let these teams "compete" on implementing certain tasks which are typical for distributed interactive systems such as games and stock exchanges.
Let the game begin! [Disclaimer: I am a long-term fan of event-driven programs, though I will honestly help both teams]
Structure: Interactive case studies
Required Skills: Multithreading or some kind of event-driven/actor programming and a fairly recent gcc/g++ version
Maximal number of participants: 25
Sergey has 20+ years of software development experience, including 15+ years in architectural positions.
He was a co-architect of a G20 online stock exchange, and a sole architect of a major online game with 400K+ simultaneous players.
He's known for his articles in CUJ, C++ and Overload, as well for his blog ithare.com and his book "Development & Deployment of Multiplayer Online Games".