Service Oriented Architecture at Square
summary
Square extracts services from a slow monolithic Rails app (183 controllers, 197 models) to cut an hour-long CI cycle by building small JRuby services packaged with jetpack packaged JRuby+Jetty so hosts only need a JVM. Development is documentation-driven development using FOC that fails the build if specs don’t match docs; local work uses Sinatra fakes started with Foreman to exercise integration. Style checks use Cane, monitoring uses Airbrake/Hoptoad and Cubism/Graphite, logs go to Splunk, and production security uses mutual SSL with OU-based ACL that returns 403 for unauthorized services.
AI-written summary · about
chapters (40)
- 0:00Introduction
- 0:32Risk Engineering at Square
- 2:54Service Oriented Architecture
- 3:52Demo
- 4:31Why use Java
- 5:27Payments Map Service
- 5:39Use Case
- 6:11Rails New
- 6:52JRuby
- 7:19Search Replace
- 8:33Payments API
- 8:56Example Response
- 9:18Using FDoc
- 9:41Scaffold Environment Variable
- 11:10Unit Testing
- 11:52Fake Services
- 12:29Rackup File
- 12:39Proc File
- 13:15Yamma
- 13:48Logs
- 14:19Code Quality
- 14:51Kane
- 15:38Cane
- 16:34Jetpack
- 17:21How it works
- 18:12Prerequisites
- 18:23Airbreak
- 19:16Exceptions
- 19:37Cubism
- 19:50Dashboards
- 20:10Bottle Rocketing
- 20:48Splunk
- 21:41Graphs
- 21:54Count by Action
- 22:41Security
- 25:03Access Control List
- 25:43API Controller
- 26:22Organization Unit
- 27:33ACL
- 27:50Questions
related talks
36mAn Iterative Approach to Service Oriented Architecture
23mAbstracting a Service - A Case Study in Forward Thinking with SOA
30mService Oriented Design in Practice
22mNitty Gritty Service Building
37mRails as an SOA Client
33mServices and Rails: The Sh*t They Don't Tell You
43mRails services in the walled garden
34mSOA and the Monolithic Rails App Anti-Pattern
