Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Kakaranet quick and well
1. KAKARANET
Social Gaming
Maxim Sokhatsky maxim@synrc.com
2. Technical Input
How modern portal should looks like ?
●
Active Fast Comet Pages
●
High-load Ready
●
Reliability and Failover
●
Ditribution for Speed
●
Monitoring tools
●
Facebook-like facilities and integration
●
Simple and small time-to-market
●
Single Environment
3. Underlying Products
Quick and Well strategy
Riak RabbitMQ GProc
●
High Availability ●
Connecting People ●
Distributed In-
● Monitoring Tools ●
Deliver Messages memory database
● Best In-class ●
Invented in Banks ●
Consistent
● Stable ●
Language Opaque ●
Complex Queries
● Manageable ●
Fast
Nitrogen Cowboy Erlang
●
Best Comet Server ●
Fastest Web Server ●
Automatic Fail-over
●
Clustered ●
SSL Ready ●
Purity of code
●
Typed HTML ●
Modular ●
High Reliability
●
Rich JavaScript ●
Young but stable ●
High Load
●
Easy to Develop ●
Mature Infrastructure
●
Event driven
4. Social Web Application
Simple but modern
●
Users and Groups ●
Friends
●
Free to register ●
Likes
● Direct Messages ●
Feeds
●
Media Files as Attachments, Music, Video
●
Drop-down Auto-completion
● Comet Pages with Rich JavaScript
● Pub/Sub key-routing with RabbitMQ
5. Game Server Nodes
Easy to Write new games
●
AMF listeners and Flex Clients
●
Tables, Games, Tournaments model
●
Access to Riak and GProc databases
●
Matching Players Each Other in ranges
●
Global Registry of all games in Cluster
●
Persist Game Data
●
40KB per game on server-side
6. Sequential Consistency
Guard Processes
●
All entities that could ●
Back-end Workers for
be changed controlled ordering write
by Erlang Process requests in RabbitMQ
spawn on bootstrap queues
●
Respawn on failover on ●
All read operations still
another node available for anyone in
cluster
●
Examples: Feeds, Users, Groups, Lists
7. Cluster Levels
Diferrent Tasks Require Different Clusters
Database Memory
●
Riak is present in ●
Each Process
each node in cluster registered in global
database
Filesystem Routing
●
GlusterFS on each ●
Clustered RabbitMQ
server to handle routing
8. Cluster Line
Erlang/OTP Releases per OS
app@srv1 game@srv1
●
Workers ●
Games
●
Riak R/W ●
Riak R/O
●
GProc ●
GProc
rabbit@srv1 web@srv1
●
RabbitMQ ●
Nitrogen
●
Routing Databse ●
Riak R/O
●
Gproc
●
Cowboy