We know how to handle Polymorphism in the small with protocols and multimethods but how do we handle Polymorphism in the large?
While developing a Form Builder, we collected tools and practices to structure our codebase so that adding each new Field Type would add no extra complexity. The journey highlights the strengths (and weaknesses!) that Clojure(Script) has to deal with architecture in several concerns: rendering, validating, storing, etc.
Slides: http://slides.com/bensu/polymorphic_codebases