we use to build and deploy client-side web applications at Bazaarvoice this is not a talk about how we should all start building and deploying client-side web applications
in OPP* single code base, multiple customers one build per site/locale combo lots of sites, lots of locales * Credit to Mike Pennisi for this way-cooler acronym for 3PJS.
core app js make scout js make css embed font in css download images publish to s3 verify display publish scout file purge akamai probably some other stuff i forgot
SWF, where a workflow consists of 1. a set of steps, 2. information about the input required for each step, 3. information about the ideal duration and concurrency of those steps, and 4. the strategy for retrying failed steps
string; so, we have to store large or binary data no guarantee that steps will run on the same machine; can’t rely on filesystem retries, concurrency are first class clear contract between steps framework abstracts known complexities adding a step is exactly as hard as writing the step itself, and no harder
a mission-critical build system that isn’t visibly broken is a hard sell planning to pilot this instead with teams that have more critical deployment issues good news: lots of common steps across projects, and sharing will be easy now
identify and abstract common complexity write all code as testable modules there is great power in convention smart people have probably already solved [at least part of] your problem