fast but not loosejaoo.dk/dl/goto-aar-2013/slides/ericbowman_fastbutnotloosetypesafe... · •scala...
TRANSCRIPT
![Page 1: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/1.jpg)
Fast but Not Loose:Typesafe Clients in a
Distributed Service Architecture, a retrospective
Eric BowmanVP Architecture @ Gilt Groupe
#gotoaar #gilttech#gotocon
Monday, September 30, 13
![Page 2: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/2.jpg)
Monday, September 30, 13
![Page 3: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/3.jpg)
Monday, September 30, 13
![Page 4: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/4.jpg)
•Scala
•Play
•PostgreSQL
•MongoDB
•Voldemort
•Kafka
•Aster Data
•Mahout
•Jersey
•SBT
•Docker
•Continuous Delivery
Microservices
Monday, September 30, 13
![Page 5: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/5.jpg)
http://upload.wikimedia.org/wikipedia/commons/1/16/Ruby_on_Rails-logo.pnghttp://wiki.postgresql.org/wiki/File:PostgreSQL_logo.3colors.svgMonday, September 30, 13
![Page 6: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/6.jpg)
http://logonoid.com/images/thumbs/christian-louboutin-logo.jpgMonday, September 30, 13
![Page 7: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/7.jpg)
http://data.iluxdb.com/data/christian-louboutin-daffodile-160mm-python-masai-1130127cm09_001.jpg?dd80c0Monday, September 30, 13
![Page 8: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/8.jpg)
http://upload.wikimedia.org/wikipedia/commons/7/79/Operation_Upshot-Knothole_-_Badger_001.jpg
Monday, September 30, 13
![Page 9: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/9.jpg)
Monday, September 30, 13
![Page 10: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/10.jpg)
Monday, September 30, 13
![Page 11: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/11.jpg)
Monday, September 30, 13
![Page 12: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/12.jpg)
Monday, September 30, 13
![Page 13: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/13.jpg)
Monday, September 30, 13
![Page 14: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/14.jpg)
Monday, September 30, 13
![Page 15: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/15.jpg)
Monday, September 30, 13
![Page 16: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/16.jpg)
http://blog.verwilst.be/wp-content/uploads/2008/12/java.gif
Monday, September 30, 13
![Page 17: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/17.jpg)
user_service order_service payment_service product_service cart_service
swift
pagegen
Monday, September 30, 13
![Page 18: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/18.jpg)
http://megmurph.com/wp-content/uploads/2013/03/success-1.jpg
Monday, September 30, 13
![Page 19: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/19.jpg)
Front End
Service X
Service Y
Service Z
Monday, September 30, 13
![Page 20: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/20.jpg)
Front End
Service X
Service Y
Service Z
Monday, September 30, 13
![Page 21: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/21.jpg)
Front End
Service X
Service Y
Service Z
Content from Service X
Content from Service Y
Content from Z
Monday, September 30, 13
![Page 22: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/22.jpg)
Front-End Tier
Service Tier
Data Tier
Monday, September 30, 13
![Page 23: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/23.jpg)
Front-End Tier
Service Tier
Data Tier
CachingLight Computation
Orchestration
Monday, September 30, 13
![Page 24: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/24.jpg)
Front-End Tier
Service Tier
Data Tier
CachingLight Computation
Orchestration
CachingHeavier Computation
Separation of Concerns
Monday, September 30, 13
![Page 25: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/25.jpg)
Front-End Tier
Service Tier
Data Tier
CachingLight Computation
Orchestration
CachingHeavier Computation
Separation of Concerns
Data Access(Disk/SSD/RAM)
Monday, September 30, 13
![Page 26: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/26.jpg)
•Runtime Temperature•Development Temperature
Front-End Tier
Service Tier
Data Tier
CachingLight Computation
Orchestration
CachingHeavier Computation
Separation of Concerns
Data Access(Disk/SSD/RAM)
Monday, September 30, 13
![Page 27: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/27.jpg)
Data Source
Service
JDBC ➾ HashMap ➾ JSON
http://gilt.com
Javascript Application
Front End
JSON ➾ HashMap ➾ JSON
Monday, September 30, 13
![Page 28: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/28.jpg)
Chaos Grows Quickly
Data Source
Service
JDBC ➾ HashMap ➾ JSON
http://gilt.com
Javascript Application
Front End
JSON ➾ HashMap ➾ JSON
Monday, September 30, 13
![Page 29: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/29.jpg)
http://gilt.com
Javascript Application
Front End
JSON ➾ HashMap ➾ JSON
JSON ➾ HashMap ➾ JSON
JSON ➾ HashMap ➾ JSON
Service
JDBC ➾ HashMap ➾ JSONData Source
Service
JDBC ➾ HashMap ➾ JSONData Source
Service
JDBC ➾ HashMap ➾ JSONData Source
Monday, September 30, 13
![Page 30: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/30.jpg)
http://gilt.com
Javascript Application
Front End
JSON ➾ HashMap ➾ JSON
JSON ➾ HashMap ➾ JSON
JSON ➾ HashMap ➾ JSON
Service
JDBC ➾ HashMap ➾ JSONData Source
Service
JDBC ➾ HashMap ➾ JSONData Source
Service
JDBC ➾ HashMap ➾ JSONData Source
Service
JSON ➾ HashMap ➾ JSON
JSON ➾ HashMap ➾ JSON
Monday, September 30, 13
![Page 31: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/31.jpg)
http://www.recruitmenttakeout.com/wp-content/uploads/2013/04/brian.png
Monday, September 30, 13
![Page 32: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/32.jpg)
•Fast
•Service Decomposition
•Implicit core model was good
Monday, September 30, 13
![Page 33: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/33.jpg)
•Org Scaling
•APIs
•Implicit core model was ... implicit
Monday, September 30, 13
![Page 34: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/34.jpg)
A data model and APIs for services
Monday, September 30, 13
![Page 35: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/35.jpg)
A data model and APIs for services
(aka, RPC)
Monday, September 30, 13
![Page 36: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/36.jpg)
http://git-scm.com/images/logos/downloads/Git-Logo-2Color.png
core service
core service
core service
core service
Legacy
Monday, September 30, 13
![Page 37: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/37.jpg)
http://git-scm.com/images/logos/downloads/Git-Logo-2Color.png
core service
core service
core service
core service
Legacy
commons.jar
core clients
core data model
async client framework
Greenfield
Monday, September 30, 13
![Page 38: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/38.jpg)
http://git-scm.com/images/logos/downloads/Git-Logo-2Color.png
core service
core service
core service
core service
Legacy
commons.jar
core clients
core data model
async client framework
Greenfield
•Users•Sales•Products•Skus•Assets•Targeting•Auth
Monday, September 30, 13
![Page 39: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/39.jpg)
service
client
core
Monday, September 30, 13
![Page 40: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/40.jpg)
service
client
core
•RESTful•Scala clients•All APIs futures-based•Case class schema
Monday, September 30, 13
![Page 41: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/41.jpg)
service
client
core
client
core
service
Compile/RuntimeDependency
Monday, September 30, 13
![Page 42: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/42.jpg)
ConsumerServiceClient
Core Core
“Embassy Soil”
Monday, September 30, 13
![Page 43: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/43.jpg)
ConsumerServiceClient
Core Core
•Easy functional testing•Service response capture•Test linking•Upgradable•Emergent Regression•Automated upgrades•Compile farmers
Monday, September 30, 13
![Page 44: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/44.jpg)
ConsumerServiceClient
Core Core
Monday, September 30, 13
![Page 45: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/45.jpg)
•Environment ⊕ Config•Live updates•Indirection•Circuit Breaker
ConsumerServiceClient
Core Core
Monday, September 30, 13
![Page 46: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/46.jpg)
Monday, September 30, 13
![Page 47: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/47.jpg)
“All of this is completely wrong.”*
*Not an actual quoteMonday, September 30, 13
![Page 48: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/48.jpg)
1.The network is reliable2.Latency is zero3.Bandwidth is infinite4.The network is secure5.Topology doesn't change6.There is one administrator7.Transport cost is zero8.The network is homogeneous
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 49: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/49.jpg)
1.The network is reliable
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 50: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/50.jpg)
1.The network is reliable
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 51: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/51.jpg)
2.Latency is zero
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 52: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/52.jpg)
2.Latency is zero
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 53: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/53.jpg)
3.Bandwidth is infinite
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 54: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/54.jpg)
3.Bandwidth is infinite
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 55: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/55.jpg)
4.The network is secure
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 56: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/56.jpg)
4.The network is secure
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 57: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/57.jpg)
5.Topology doesn't change
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 58: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/58.jpg)
5.Topology doesn't change
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 59: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/59.jpg)
6.There is one administrator
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 60: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/60.jpg)
6.There is one administrator
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 61: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/61.jpg)
7.Transport cost is zero
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 62: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/62.jpg)
7.Transport cost is zero
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 63: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/63.jpg)
8.The network is homogeneous
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
![Page 64: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/64.jpg)
8.The network is homogeneous
https://blogs.oracle.com/jag/resource/Fallacies.html
Resolved
Monday, September 30, 13
![Page 65: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/65.jpg)
“Still Wrong.”*
*Possibly an actual quoteMonday, September 30, 13
![Page 66: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/66.jpg)
Convenience Over Correctness
http://steve.vinoski.net/blog/2008/07/01/convenience-over-correctness/Monday, September 30, 13
![Page 67: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/67.jpg)
Database
Database Model
Service Backend
Service Model
Service Frontend
Client/Server Serialization Model
Client Backend
Client Data Model
Client Layer
Public Data Model
Monday, September 30, 13
![Page 68: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/68.jpg)
Database
Database Model
Service Backend
Service Model
Service Frontend
Client/Server Serialization Model
Client Backend
Client Data Model
Client Layer
Public Data Model
•So many models•Corners are cut•Typesafe helps•Conflation?•Just the data
Monday, September 30, 13
![Page 69: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/69.jpg)
“Works in Practice for some use cases”
Database
Database Model
Service Backend
Service Model
Service Frontend
Client/Server Serialization Model
Client Backend
Client Data Model
Client Layer
Public Data Model
•So many models•Corners are cut•Typesafe helps•Conflation?•Just the data
Monday, September 30, 13
![Page 70: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/70.jpg)
“Works in Practice for some use cases”“No free silver bullet lunches.”
Database
Database Model
Service Backend
Service Model
Service Frontend
Client/Server Serialization Model
Client Backend
Client Data Model
Client Layer
Public Data Model
•So many models•Corners are cut•Typesafe helps•Conflation?•Just the data
Monday, September 30, 13
![Page 71: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/71.jpg)
However...
Monday, September 30, 13
![Page 72: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/72.jpg)
•No machine generated stubs•Embassy-Oriented Programming•Lots of indirection•Type-system support for failures
However...
Monday, September 30, 13
![Page 73: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/73.jpg)
What Actually Sucks about RPC:
Monday, September 30, 13
![Page 74: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/74.jpg)
What Actually Sucks about RPC:•Remote objects •Failures•Idempotency
Monday, September 30, 13
![Page 75: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/75.jpg)
Ignoring all that was Too Easy.
Monday, September 30, 13
![Page 76: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/76.jpg)
Monday, September 30, 13
![Page 77: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/77.jpg)
Batch Jobs
Monday, September 30, 13
![Page 78: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/78.jpg)
1.The network is reliable2.Latency is zero3.Bandwidth is infinite4.The network is secure5.Topology doesn't change6.There is one administrator7.Transport cost is zero8.The network is homogeneous
Monday, September 30, 13
![Page 79: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/79.jpg)
Law of Instrument
Monday, September 30, 13
![Page 80: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/80.jpg)
Pulling data.
Monday, September 30, 13
![Page 81: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/81.jpg)
Pushing code.
Monday, September 30, 13
![Page 82: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/82.jpg)
SOA, Reloaded
Monday, September 30, 13
![Page 83: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/83.jpg)
SOA, Reloaded•CRUD•Event Streams•Batch Processing•Lambda Architecture•CQRS
Monday, September 30, 13
![Page 84: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/84.jpg)
Client
Service
DB
Monday, September 30, 13
![Page 85: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/85.jpg)
Client
Fast Storage
Service
Kafka
Data Warehouse
Batch Jobs
DB
CEP
Clickstream data
Monday, September 30, 13
![Page 86: Fast but Not Loosejaoo.dk/dl/goto-aar-2013/slides/EricBowman_FastButNotLooseTypesafe... · •Scala •Play •PostgreSQL •MongoDB •Voldemort •Kafka •Aster Data •Mahout](https://reader034.vdocuments.us/reader034/viewer/2022050410/5f874195c9157c1342498ed3/html5/thumbnails/86.jpg)
http://tech.gilt.com
join us.new york & dublin
Monday, September 30, 13