The design doc looks clear to me. The samza lib and user jars are compiled and deployed separately, and combined together during runtime. The framework path setup looks reasonable to me. It allows canary and rollback of different Samza framework versions during the upgrade. One comment: could you please comment on developing locally on split deployment, say, using ProcessJobFactory or ThreadJobFactory? It's not mentioned in the design doc. Thanks.