This is a talk about the evolution of Gilt's SOA stack, from Ruby to type-unsafe Java with hashmaps, to a full-blown typesafe, futures-based Scala API.
"Fast but not Loose" -- Typesafe client/server architecture at Gilt Groupe
1. Fast but Not Loose:
Typesafe Clients in a
Distributed Service Architecture,
a retrospective
#gotocon #gotoaar #gilttech
Eric Bowman
VP Architecture @ Gilt Groupe
Monday, September 30, 13
@ebowman
ebowman@gilt.com
25. Front-End Tier
Service Tier
Caching
Heavier Computation
Separation of Concerns
Data Tier
Monday, September 30, 13
Caching
Light Computation
Orchestration
Data Access
(Disk/SSD/RAM)
47. “All of this is
completely wrong.”*
*Not an actual quote
Monday, September 30, 13
48. 1.The network is reliable
2.Latency is zero
3.Bandwidth is infinite
4.The network is secure
5.Topology doesn't change
6.There is one administrator
7.Transport cost is zero
8.The network is homogeneous
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
49. 1.The network is reliable
https://blogs.oracle.com/jag/resource/Fallacies.html
Monday, September 30, 13
67. Public Data Model
Client Layer
Client Data Model
Client Backend
Client/Server Serialization
Model
Service Frontend
Service Model
Service Backend
Database Model
Database
Monday, September 30, 13
68. Public Data Model
Client Layer
Client Data Model
Client Backend
Client/Server Serialization
Model
Service Frontend
Service Model
Service Backend
Database Model
Database
Monday, September 30, 13
•So many models
•Corners are cut
•Typesafe helps
•Conflation?
•Just the data
69. Public Data Model
Client Layer
Client Data Model
Client Backend
Client/Server Serialization
Model
Service Frontend
Service Model
Service Backend
Database Model
•So many models
•Corners are cut
•Typesafe helps
•Conflation?
•Just the data
Database
“Works in Practice for some use cases”
Monday, September 30, 13
70. Public Data Model
Client Layer
Client Data Model
Client Backend
Client/Server Serialization
Model
Service Frontend
Service Model
Service Backend
Database Model
•So many models
•Corners are cut
•Typesafe helps
•Conflation?
•Just the data
Database
“Works in Practice for some use cases”
“No free silver bullet lunches.”
Monday, September 30, 13
72. However...
•No machine generated stubs
•Embassy-Oriented Programming
•Lots of indirection
•Type-system support for failures
Monday, September 30, 13
78. 1.The network is reliable
2.Latency is zero
3.Bandwidth is infinite
4.The network is secure
5.Topology doesn't change
6.There is one administrator
7.Transport cost is zero
8.The network is homogeneous
Monday, September 30, 13