SlideShare a Scribd company logo
Building big things
      in Java
     Mark Pope and Tom Coupland
Nokia
Entertainment

     Text
Search & Buy

               Mix Radio
Internet



                   Entertainment API



Search   Library        Radio          Gigs   Delivery
Search




http://mhm.hud.ac.uk/newsroom/image/record-store-3
Entertainment API




            Search




Solr         Solr          Solr
Entertainment API




            Search




Solr         Solr          Solr
Search

• 200 requests per second
• 300ms response time
Entertainment API
              EAPI




            Search




Solr         Solr          Solr
Entertainment API




            Search




Solr         Solr          Solr
Solr

• 3 servers (96GB RAM, 12 cores)
• 420 requests per second
• 15ms response time
• 25 million documents
Entertainment API




            Search




Solr         Solr          Solr
You found it!




                                  Now what?
http://news.bbc.co.uk/sport2/hi/olympics/7564645.stm
http://winncollier.com/the-frugal-side-of-me/
Library



http://kraftylibrarian.com/?p=1596
Entertainment API


           Library


           Sharding


a-    e-    k-   p-   t-   v-
d      j    o     s   u     z
Entertainment API


           Library


           Sharding


a-    e-    k-   p-   t-   v-
d      j    o     s   u     z
Library


• 1,000,000,000 rows
• 800,000 requests per day
• 300ms response time
• 26 servers
Half way
Mix Radio




http://alyssahsadie.deviantart.com/art/Old-School-
               BoomBox-24949091
Entertainment API




Personalisation    Catalogue




                       db
Entertainment API




Personalisation    Catalogue




                       db
Entertainment API

• 35 developers, 6 teams, 2 countries
• 19000 lines of code
• 155 deployments in 2011
• 160 deployments in 2012
Show me the
   music!
Delivery




                           LOUD NOISES!
http://pursuitbikes.com/blog/?p=9279
Entertainment API




    Delivery
                    NAS




   Packaging
Entertainment API




    Delivery
                    NAS




   Packaging
Delivery

• 1 petabyte of music and books
• 16 million tracks
• 6 formats
• 1 million tracks served per day
So...
That’s how we built (part of) a big thing in
                  Java
Questions?
Thanks!
• Mark Pope             • twitter.com/
                          tcoupland
 • twitter.com/scobal
                        • github.com/
 • github.com/scobal      mantree

• Tom Coupland

More Related Content

Viewers also liked

The Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumThe Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect Consortium
Samsung Open Source Group
 
IoT Seminar (Oct. 2016) Jong Young Lee - MDS Technology
IoT Seminar (Oct. 2016) Jong Young Lee - MDS TechnologyIoT Seminar (Oct. 2016) Jong Young Lee - MDS Technology
IoT Seminar (Oct. 2016) Jong Young Lee - MDS Technology
Open Mobile Alliance
 
Why we need IoT
Why we need IoTWhy we need IoT
Why we need IoT
Oleg Popov
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
Oleg Mygryn
 
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
Open Mobile Alliance
 
IoT Seminar (Oct. 2016) Tao Lin - Movimento Group
IoT Seminar (Oct. 2016) Tao Lin - Movimento GroupIoT Seminar (Oct. 2016) Tao Lin - Movimento Group
IoT Seminar (Oct. 2016) Tao Lin - Movimento Group
Open Mobile Alliance
 
Israel's First Internet of Things Conference
Israel's First Internet of Things ConferenceIsrael's First Internet of Things Conference
Israel's First Internet of Things Conference
GeminiVC
 
Deep Learning for Computer Vision: Backward Propagation (UPC 2016)
Deep Learning for Computer Vision: Backward Propagation (UPC 2016)Deep Learning for Computer Vision: Backward Propagation (UPC 2016)
Deep Learning for Computer Vision: Backward Propagation (UPC 2016)
Universitat Politècnica de Catalunya
 
Deep Learning for Computer Vision: Deep Networks (UPC 2016)
Deep Learning for Computer Vision: Deep Networks (UPC 2016)Deep Learning for Computer Vision: Deep Networks (UPC 2016)
Deep Learning for Computer Vision: Deep Networks (UPC 2016)
Universitat Politècnica de Catalunya
 
Deep Learning for Computer Vision: Image Classification (UPC 2016)
Deep Learning for Computer Vision: Image Classification (UPC 2016)Deep Learning for Computer Vision: Image Classification (UPC 2016)
Deep Learning for Computer Vision: Image Classification (UPC 2016)
Universitat Politècnica de Catalunya
 
Deep Learning for Computer Vision: Visualization (UPC 2016)
Deep Learning for Computer Vision: Visualization (UPC 2016)Deep Learning for Computer Vision: Visualization (UPC 2016)
Deep Learning for Computer Vision: Visualization (UPC 2016)
Universitat Politècnica de Catalunya
 
Arrow Global Village IoT Summit (2016)
Arrow Global Village IoT Summit (2016)Arrow Global Village IoT Summit (2016)
Arrow Global Village IoT Summit (2016)
Marc Jadoul
 
Case Study of Convolutional Neural Network
Case Study of Convolutional Neural NetworkCase Study of Convolutional Neural Network
Case Study of Convolutional Neural Network
NamHyuk Ahn
 
Failure of nokia research paper
Failure of nokia research paperFailure of nokia research paper
Failure of nokia research paper
abhishekthakur309
 

Viewers also liked (14)

The Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect ConsortiumThe Future of IoT: Why We Need the Open Interconnect Consortium
The Future of IoT: Why We Need the Open Interconnect Consortium
 
IoT Seminar (Oct. 2016) Jong Young Lee - MDS Technology
IoT Seminar (Oct. 2016) Jong Young Lee - MDS TechnologyIoT Seminar (Oct. 2016) Jong Young Lee - MDS Technology
IoT Seminar (Oct. 2016) Jong Young Lee - MDS Technology
 
Why we need IoT
Why we need IoTWhy we need IoT
Why we need IoT
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
 
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
IoT Seminar (Oct. 2016) Pilgrim Beart - DevicePilot & Duncan Purves - Connect...
 
IoT Seminar (Oct. 2016) Tao Lin - Movimento Group
IoT Seminar (Oct. 2016) Tao Lin - Movimento GroupIoT Seminar (Oct. 2016) Tao Lin - Movimento Group
IoT Seminar (Oct. 2016) Tao Lin - Movimento Group
 
Israel's First Internet of Things Conference
Israel's First Internet of Things ConferenceIsrael's First Internet of Things Conference
Israel's First Internet of Things Conference
 
Deep Learning for Computer Vision: Backward Propagation (UPC 2016)
Deep Learning for Computer Vision: Backward Propagation (UPC 2016)Deep Learning for Computer Vision: Backward Propagation (UPC 2016)
Deep Learning for Computer Vision: Backward Propagation (UPC 2016)
 
Deep Learning for Computer Vision: Deep Networks (UPC 2016)
Deep Learning for Computer Vision: Deep Networks (UPC 2016)Deep Learning for Computer Vision: Deep Networks (UPC 2016)
Deep Learning for Computer Vision: Deep Networks (UPC 2016)
 
Deep Learning for Computer Vision: Image Classification (UPC 2016)
Deep Learning for Computer Vision: Image Classification (UPC 2016)Deep Learning for Computer Vision: Image Classification (UPC 2016)
Deep Learning for Computer Vision: Image Classification (UPC 2016)
 
Deep Learning for Computer Vision: Visualization (UPC 2016)
Deep Learning for Computer Vision: Visualization (UPC 2016)Deep Learning for Computer Vision: Visualization (UPC 2016)
Deep Learning for Computer Vision: Visualization (UPC 2016)
 
Arrow Global Village IoT Summit (2016)
Arrow Global Village IoT Summit (2016)Arrow Global Village IoT Summit (2016)
Arrow Global Village IoT Summit (2016)
 
Case Study of Convolutional Neural Network
Case Study of Convolutional Neural NetworkCase Study of Convolutional Neural Network
Case Study of Convolutional Neural Network
 
Failure of nokia research paper
Failure of nokia research paperFailure of nokia research paper
Failure of nokia research paper
 

Similar to Building big things in Java

Storm at Spotify
Storm at SpotifyStorm at Spotify
Storm at Spotify
Neville Li
 
Boston College Radio
Boston College Radio Boston College Radio
Boston College Radio
Paul Kamp
 
How KKBOX use mrjob to link python, hadoop, aws
How KKBOX use mrjob to link python, hadoop, awsHow KKBOX use mrjob to link python, hadoop, aws
How KKBOX use mrjob to link python, hadoop, aws
Yu-ching Lin
 
Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...
Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...
Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...
Autumn Faulkner
 
QMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack DayQMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack Day
Amélie Anglade
 
Hive at Last.fm
Hive at Last.fmHive at Last.fm
Hive at Last.fm
Skills Matter
 
Music Hackday Boston - The Last.fm API
Music Hackday Boston - The Last.fm APIMusic Hackday Boston - The Last.fm API
Music Hackday Boston - The Last.fm API
davidsingleton
 
Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...
Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...
Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...
Lucidworks
 
Intellectualproperty
IntellectualpropertyIntellectualproperty
Intellectualproperty
Dawn (Nikki) Cannon-Rech
 
Drupal case study: ABC Dig Music
Drupal case study: ABC Dig MusicDrupal case study: ABC Dig Music
Drupal case study: ABC Dig Music
David Peterson
 
[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)
jam_team
 
Music in Zoeken.bibliotheek.be
Music in Zoeken.bibliotheek.beMusic in Zoeken.bibliotheek.be
Music in Zoeken.bibliotheek.be
Johan Mijs
 
Kahle brewster internet archive universal access-11-2011-africa
Kahle brewster internet archive universal access-11-2011-africaKahle brewster internet archive universal access-11-2011-africa
Kahle brewster internet archive universal access-11-2011-africa
Johannes Phaladi
 
WhoSampled Presentation - Mixcloud 2nd Birthday Party
WhoSampled Presentation - Mixcloud 2nd Birthday PartyWhoSampled Presentation - Mixcloud 2nd Birthday Party
WhoSampled Presentation - Mixcloud 2nd Birthday Party
WhoSampled
 
The History and Possible Futures of the Internet
The History and Possible Futures of the InternetThe History and Possible Futures of the Internet
The History and Possible Futures of the Internet
Larry Smarr
 
Offer For Distributors Of Casual Games
Offer For Distributors Of Casual GamesOffer For Distributors Of Casual Games
Offer For Distributors Of Casual Games
Alawar Entertainment
 
The Guardian Open Platform Content API: Implementation
The Guardian Open Platform Content API: ImplementationThe Guardian Open Platform Content API: Implementation
The Guardian Open Platform Content API: Implementation
The Guardian Open Platform
 
DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...
DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...
DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...
Dataconomy Media
 

Similar to Building big things in Java (18)

Storm at Spotify
Storm at SpotifyStorm at Spotify
Storm at Spotify
 
Boston College Radio
Boston College Radio Boston College Radio
Boston College Radio
 
How KKBOX use mrjob to link python, hadoop, aws
How KKBOX use mrjob to link python, hadoop, awsHow KKBOX use mrjob to link python, hadoop, aws
How KKBOX use mrjob to link python, hadoop, aws
 
Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...
Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...
Catalog All the Things: Leveraging Automation to Catalog a Massive Audio-Visu...
 
QMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack DayQMUL C4DM API Presentation @ BCN Music Hack Day
QMUL C4DM API Presentation @ BCN Music Hack Day
 
Hive at Last.fm
Hive at Last.fmHive at Last.fm
Hive at Last.fm
 
Music Hackday Boston - The Last.fm API
Music Hackday Boston - The Last.fm APIMusic Hackday Boston - The Last.fm API
Music Hackday Boston - The Last.fm API
 
Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...
Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...
Downtown SF Lucene/Solr Meetup: Developing Scalable Search for User Generated...
 
Intellectualproperty
IntellectualpropertyIntellectualproperty
Intellectualproperty
 
Drupal case study: ABC Dig Music
Drupal case study: ABC Dig MusicDrupal case study: ABC Dig Music
Drupal case study: ABC Dig Music
 
[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)[JAM 2.0] Music API (Paul Malikov)
[JAM 2.0] Music API (Paul Malikov)
 
Music in Zoeken.bibliotheek.be
Music in Zoeken.bibliotheek.beMusic in Zoeken.bibliotheek.be
Music in Zoeken.bibliotheek.be
 
Kahle brewster internet archive universal access-11-2011-africa
Kahle brewster internet archive universal access-11-2011-africaKahle brewster internet archive universal access-11-2011-africa
Kahle brewster internet archive universal access-11-2011-africa
 
WhoSampled Presentation - Mixcloud 2nd Birthday Party
WhoSampled Presentation - Mixcloud 2nd Birthday PartyWhoSampled Presentation - Mixcloud 2nd Birthday Party
WhoSampled Presentation - Mixcloud 2nd Birthday Party
 
The History and Possible Futures of the Internet
The History and Possible Futures of the InternetThe History and Possible Futures of the Internet
The History and Possible Futures of the Internet
 
Offer For Distributors Of Casual Games
Offer For Distributors Of Casual GamesOffer For Distributors Of Casual Games
Offer For Distributors Of Casual Games
 
The Guardian Open Platform Content API: Implementation
The Guardian Open Platform Content API: ImplementationThe Guardian Open Platform Content API: Implementation
The Guardian Open Platform Content API: Implementation
 
DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...
DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...
DN 2017 | Machines are Learning - Bringing Powerful Artificial Intelligence t...
 

Recently uploaded

Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 

Recently uploaded (20)

Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 

Building big things in Java

Editor's Notes

  1. Welcomes. Thanks for coming. We’re Tom and Mark. From Nokia. \nHere to talk about \ndeliver a global music service\nhow we built it with Java\n(Do we add in a story throughout to keep the ideas concrete)\n
  2. Located in central Bristol \nDesign, build and maintain the service (pretty much exclusively)\nProvide music to millions of users around the world\nScaled/Served to around 1million downloads a day\nJava, windows phone, web\n
  3. Talk through parts of our service\nTwo use cases:\nSearch and adding to Library (Find and own)\nMix radio and Delivery (New product called mix radio)\nFirst going to talk about high level architecture...\n
  4. Multiple client platforms (win phone, web, symbian)\nSOA 3 years ago\nStruggling with single monolith, lots of clashing\nTeams work on groups of services\nBreak a use case down into a set of responsibilities. Service for each one.\nScale single components\nEAPI provides \nauth\nproxy for routing\ncommon api\nJSON over HTTP with REST\nTalk more about it later....\n
  5. Think about how you buy music from a store.\nHow you might model the process in software.\nSo, we ended up with something a bit like like:\n\n\n
  6. EAPI routes requests to Search service\n\n\n
  7. So we’re now going to talk about Search\n
  8. Why do we need this layer? Stateless. Built for high throughput.\nReturns track metadata, artist information, track names.\nLayer of abstraction above solr\nTalk internal language\nJava, Spring (Open Source, tool for building java software [IOC {breakout acronyms}, DI]), REST API over HTTP\nTwo servers for failover - key concept when building big things\n
  9. \n
  10. \n
  11. What is solr? Solr is an Apache Open Source inverted full text indexer. So...\nWhy use solr instead of SQL?\nPut in documents containing artist and song information, get broken down into individual words, then indexes.\n\nsearch for “stone” -> Stone Roses, Joss Stone, Rolling Stones.\n\n3 servers: failover and scale requests\n
  12. So, this how our search architecture works.\nSo....\n
  13. You’ve found what you’re looking for. \nWhat’s the next step?\n
  14. Well, you have to give us some money.\nWe’re not going to concentrate on this\n
  15. We have to know what you own.\nPersonal collection of music/books\nHow to model this in software (when you have to store millions of users collections)\n(Collections can be ma-hou-sive)\nClients use this to obtain what a user owns, so you can see what you own on the clients\n
  16. The familiar clients and api layer.\nRoutes to Library sub-system.\n\n
  17. The familiar clients and api layer.\nRoutes to Library sub-system.\n\n
  18. Why do we need to shard? Why not one big database (horizontal vs vertical [expensive] scaling) \nClone, copy, master-master\nEach shard replicated twice - failover and redundancy when building big things. Hot failover.\nThin service runs on 8 servers, 12 db servers, 6 sharding servers\nSpring and hibernate, Open Source. Open Source MySql.\n
  19. Not really an intermission. We’re just half way through our slides.\n
  20. Mix radio - product on Nokia Lumia phones for streaming free music.\nHand crafted - created by experts to suit mood and taste.\nMobile optimised - codec with great sound and small file size\nHow might you do this with software?\n\n
  21. Back to our old friend EAPI.\nCan see the two paths - not going to talk about personalisation today\nLooking for curated radio stations\nThese are stored in a service called Catalogue\n
  22. Catalogue is a big list of all the music and books we offer. Metadata store.\nAlso stores curated radio stations\nEAPI retrieves the radio station you selected (which the client will then play)\nHowever, take a quick look at this EAPI thing. What is it\n
  23. Conceptually a thin layer - actually a bit more to it (because of it’s centralness)\nClient agnostic. Stateless. \nContinuous change, integration and delivery\nHighly modular allowing collaboration reducing checkin conflicts (with git).\nPairing, TDD.\nDanny and Neil talking in more detail later about how we work\n
  24. Ok\n
  25. How do we make noise come out of your phone\n
  26. Sub-systems that make noise come out of your phone\nResponsible for \nmaking sure you’re licensed to download your selection\nactually serving up the location of the music or book\nadding images and meta-data to your download\nNAS for storing music + books - massive\n\n
  27. So how big is this thing?\n
  28. Mention VCDN. What is a (Content Delivery Network) CDN?\nContent Delivery Network, a big cache out in the cloud.\nPowers ‘most’ of the internet, act as caches for content.\nLocated all over the world, reduce load.\nGreat Firewall of China.\nStores our eaac32 formatted tracks.\n
  29. \n
  30. \n
  31. \n