Silk is a framework for building and running complex workflows of distributed data processing. It allows describing dataflows in Scala in a type safe and concise syntax. Silk translates Scala programs into logical plans and schedules the distributed execution through various "weavers" like an in-memory weaver or Hadoop weaver. It performs static and run-time optimizations of dataflows and supports features like fault tolerance, resource monitoring, and UNIX command integration. The goal of Silk is to enable distributed data analysis for all data scientists through an object-oriented programming model.