~/talk

Using spec to Transparently Replace a Legacy System

Talkat Clojure/west 2017 · 2017-03-30..03-31· [clojure, testing]
links:none on file
slides:none on file

Replaces a legacy targeting engine by treating it as a black box: parse days of access logs to extract inputs, write Clojure spec that parses and generates thousands of real requests, replay them against a new engine behind Amazon API Gateway, and compare outputs across thousands of samples. Works on a client with ~4,000 properties, tens of millions of members and ~10,000 active offers. Finds subtle mismatches including a bug that served English instead of French, and achieves zero downtime and no client code changes.

AI-written summary · about

  1. 0:00Start
  2. 1:46What the targeting engine does
  3. 2:59User begins booking a hotel room
  4. 6:05Finding request data
  5. 6:30Parsing logs
  6. 11:15Example response
  7. 13:04Questions to answer
  8. 14:16Request rewriting
  9. 14:56Payload rewriting
  10. 15:39New architecture
  11. 15:58Use spec to test the new system
  12. 17:51Verifying the correctness of booking abandon
  13. 19:32Example: missing offers
  14. 21:36Deploying using API gateway
  15. 22:14Route traffic via the gateway
  16. 22:32Switch API gateway config to go live
  17. 23:58Final thoughts
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.