all your api are belong to us
play

ALL YOUR API ARE BELONG TO US Paul Hill Everything as a service - PowerPoint PPT Presentation

ALL YOUR API ARE BELONG TO US Paul Hill Everything as a service QCon New York 2014 Paul Hill Architect @ KIXEYE Platform Team APIs to power Social Gaming @paulwilliamhill Building a respectable API under fire An Adventure! starring The


  1. ALL YOUR API ARE BELONG TO US Paul Hill Everything as a service QCon New York 2014

  2. Paul Hill Architect @ KIXEYE Platform Team APIs to power Social Gaming @paulwilliamhill

  3. Building a respectable API under fire An Adventure! starring The Good The Bad & The Ugly hypermedia API supporting thousands of requests per second, taking full advantage of the benefits of an asynchronous architecture (Node.js), bi-directional persistent communication channels (websockets), and the performance and flexibility of a document data store (MongoDB) while retaining standards based data validation (JSON-Schema v4), transactional control and error handling (Promises), dynamic documentation (Swagger), efficient caching (Memcached & Varnish), and ease of maintenance (Hypermedia ReST).

  4. The Enrichment Center regrets to inform you that this next test is impossible. Make no attempt to solve it. The Goal Social graph search Authentication ★ ★ Chat OAuth2 ○ ★ Identity (incl. game aliases) Facebook Connect ★ ○ Player profiles Google Auth ○ ★ Friends and following Game launch canvas ★ ★ Leaderboards Geo-location ★ ★ Messaging Name validation ★ ★ Avatars Email validation ★ ★ Live marketing channel Closed beta invite control ★ ★ Online presence Newsfeed ★ ★ Player search Gifting ★ ★ User account management Forums ★ ★ Real-time player game stats Payments ★ ★ Community management (incl. bans) ★ Groups & Alliances ★ https://api.kixeye.com/api/v2/docs/

  5. Fear not! I will inspire you all by charging blindly on! Tail Winds Small team of Rockstar Developers ★ Positive culture + optimism ★ Given a goal, not direction ★ Known traffic patterns ★ ~30MM active players ○ ~120k CCU playing games ○ ~10k - 30k CCU active on web ○ property User experience trumps consistency ★ Time to market trumps cost ★ Over provisioning ★

  6. The right man in the wrong place can make all the difference in the world. The Good ReST Measure all the things! ★ ★ JSON Schema v4 Graphite & StatsD ○ ★ Validation ready fire fire fire... ○ ○ zSchema Websockets ○ ★ Swagger SockJS ★ ○ Live interactive docs Easy to grok, fork and patch repos in github ○ ★ Mongo CLS (continuation local storage) ★ ★ easy JSON storage performance plus ○ ○ Promises encourages reusable functions ★ ○ Error handling guarantees Automated unit testing by response code ○ ★ Bluebird 3 tiers (Transport, Logic, Persistence) ○ ★ Elasticsearch URI based caching ★ ★ use strict schema Varnish ○ ○ ngrams Memcached ○ ○ DisMax focus on problem #1 ○ ○

  7. War, war never changes. The Bad Compressed timelines V8 ★ ★ Dynamic requirements gc ★ ○ Mongo Poor live profiling tooling ★ ○ unique constraints limited on Excessive calls from builds to GitHub ○ ★ sharded collections npm ★ access pattern outgrew DDS flakey, requires a mirror ○ ○ storing relationships CLS ○ ★ write scaling requires a lot of shims or ○ ○ background indexing context is lost ○ Load balancing socket.io Jasmine ★ ★ Performance of overhead of Q fails and just keeps on going ★ ○ beware the async setup collision ○

  8. I am the vanguard of your destruction. The Ugly Natural key based load balancing Supernodes ★ ★ (The Aggregator) $in ○ Back pressure Reactive cascade failure ★ ★ Memory leaks Default retry ○ ★ Thrift JS - oneway void - Flume true exponential back off with ○ ○ Default error handling in libs no cap ○ Q long stack traces Node Zookeeper heartbeat ○ ○ Insane default configuration in libs timeout ★ gc behaviour under stress ○ load rebalancing ○

  9. Join Us kixeye.com/jobs

Recommend


More recommend