Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AS A PATTERN FOR POLYGLOT INTERCHANGE TriClojure, January 2013 http://www.flickr.com/photos/celesteh/5465690016/
Slide 2
Slide 2 text
Toby Crawley @tcrawley gh:/tobias
Slide 3
Slide 3 text
http://www.flickr.com/photos/bre/552152780/ The right tool
Slide 4
Slide 4 text
http://www.flickr.com/photos/telstar/5987044822/ The talent pool
Slide 5
Slide 5 text
http://www.flickr.com/photos/daviderickson/5737284021/ Embed
Slide 6
Slide 6 text
Ruby in Clojure (example)
Slide 7
Slide 7 text
Prose • everything in one place • write ruby like clojure (with wrappers) • gh:/circleci/cljr • works for simple things
Slide 8
Slide 8 text
(cons) • grody • big ball of state • mixed programming models • type conversion • dependency management • see Rohner (Clojure/West)
Slide 9
Slide 9 text
Clojure in Ruby (no example)
Slide 10
Slide 10 text
Prose • everything in one place • write clojure like ruby (with wrappers) • gh:/kyleburton/jrclj • works for simple things
Slide 11
Slide 11 text
(cons) • mixed programming models • type conversion • dependency management
Slide 12
Slide 12 text
http://www.flickr.com/photos/avlxyz/2462060601 Separation of concerns
Slide 13
Slide 13 text
Prose • deployment independence • facilitates separate teams
Slide 14
Slide 14 text
(cons) • deployment complexity • conversion overhead • integration testing
Slide 15
Slide 15 text
http://www.flickr.com/photos/jacksnell707/6488069287/ Communication
Slide 16
Slide 16 text
http (example)
Slide 17
Slide 17 text
Prose • you already know it • you (may) already have it
Slide 18
Slide 18 text
(cons) • (may) expose a private interface • error/retry handling • incidental complexity • scaling? • endpoint discovery
Slide 19
Slide 19 text
database (ugh, really? no example)
Slide 20
Slide 20 text
Prose • you already know it • you already have it • generally good at coordination
Slide 21
Slide 21 text
(cons) • using the db for transient data • already a bottleneck • polling complexity
Slide 22
Slide 22 text
messaging (example)
Slide 23
Slide 23 text
Prose • less compensatory logic • simple scalability • distinct endpoint
Slide 24
Slide 24 text
(cons) • timeouts still an issue • (possibly) another system to manage • integration testing
Slide 25
Slide 25 text
http://www.flickr.com/photos/lajoso/2445777235 Sync/Async
Slide 26
Slide 26 text
Prose • true deployment independence • simplifies the requester • scalable • chainable
Slide 27
Slide 27 text
(cons) • up front design • dealing with async results • debugging & integration tests
Slide 28
Slide 28 text
http://www.flickr.com/photos/avlxyz/2462060601 General Pattern http://www.flickr.com/photos/nostri-imago/300664816
Slide 29
Slide 29 text
Resources • immutant.org • torquebox.org • gh:/tobias/procrastination-sample-code
Slide 30
Slide 30 text
http://www.flickr.com/photos/10233859@N00/4801764538/ Shin Donkey Danke schön!
Slide 31
Slide 31 text
http://www.flickr.com/photos/coldtaxi/426162862/