2. And there was …NIB
• Monolithic System
• Built with Java and front ended with JSPs
• Talked to Oracle Database directly
• Disconnected with the publishing
• Publishing achieved via batch jobs that picked
up the articles, ran home grown templating on
the pages to generate a “view”
3. V1
• IGN’s first attempt at SOA
• Almighty NIB stays
• A Java layer was built to talk with Oracle
• Introduced caching with memcached, with
near/far cache architecture
• Templating was replaced with Freemarker
instead of home grown templating
4. V2
• Built to address the engineering problems with V1, not
the business problems
• Almighty NIB stays
• The Freemarker templating stays
• API changed from Java to Rails
• Video and Blogs moved to MongoDB
• Ruby’s performance (or lack of it) bit us in the ass, so
built a Java+Memcached based edge cache
• Used Solr for searches, with RabbitMQ to handle
clustering
5. V3
• NIB is gone (for the most part)
• The APIs changed drastically and a standard was
formed
• Scala was introduced
• Solr replaced by Elasticsearch
• APIs front ended by Varnish
• Addressed engineering *and* business problems
• Went live a week before E3
8. Advantages of V3 APIs
• Single, consistent APIs across content and
social APIs
• Less code as level-1 caching is handled by
Varnish
• Common code abstracted out as libraries
• Performance gain over Rails/Middleman
• Faster turnaround time – articles and videos
show up in 2 minutes vs. 20 earlier
9. TODO
• There is a lot of work needed on V3 API
– Enhance and refactor the code to use the
common libraries
– Rebuild Social API on V3 API platform
– Consistency between APIs
– Poor code coverage in tests
– Move up to 2.10.0 when it comes
– Tune ElasticSearch
– …..