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/