The article is discussing documentation for the <i>AWS Flow Framework specifically</i>. The Flow Framework is a Java framework built on top of the SWF API, and it provides a completely different programming model than the SWF API.<p>The C# example being discussed, as well as the Java example at the end, are examples of using that SWF API directly. The SWF API is indeed simpler for trivial examples. Flow is a power tool that handles complex workflows better than any alternative I&#x27;ve seen, but the framework itself is complex and incurs cost to set up and use. The documentation could do a better job of explaining this, and of providing Java API examples.<p>The Flow framework provides something that&#x27;s a mix of Java code and a domain-specific language for building SWF applications that&#x27;s expressed as Java code. (For an analogy, consider EasyMock.) It&#x27;s hard to explain Flow concisely, but if I had to try I&#x27;d say, &quot;You write code that looks like it&#x27;s procedural and runs on one machine, and Flow converts that into a distributed workflow running across of fleet of machines, all of which may be stateless&quot;. Flow threads the state into and out of SWF for you, making it possible to express distributed workflows at a higher level of abstraction. Some examples are in the AWS Flow Framework Recipes: <a href="https:&#x2F;&#x2F;aws.amazon.com&#x2F;code&#x2F;2535278400103493" rel="nofollow">https:&#x2F;&#x2F;aws.amazon.com&#x2F;code&#x2F;2535278400103493</a><p>To achieve this, Flow uses fancy code weaving &amp; AOP techniques. This makes it more complicated to set up, develop, and test. Flow pays off however once your workflow is more complex than a simple linear workflow. You could, for example, process data with a distributed map&#x2F;reduce pattern in a few lines of code in Flow.  (Source: built production systems on SWF with and without Flow)