

# Understanding AWS Flow Framework for Java
<a name="concepts"></a>

The AWS Flow Framework for Java works with Amazon SWF to make it easy to create scalable and fault-tolerant applications to perform asynchronous tasks that may be long running, remote, or both. The "Hello World\$1" examples in [What is the AWS Flow Framework for Java?](welcome.md) introduced the basics of how to use the AWS Flow Framework to implement basic workflow applications. This section provides conceptual information about how AWS Flow Framework applications work. The first section summarizes the basic structure of an AWS Flow Framework application, and the remaining sections provide further detail about how AWS Flow Framework applications work.

**Topics**
+ [Application Structure](awsflow-basics-application-structure.md)
+ [Reliable Execution](awsflow-basics-reliable-execution.md)
+ [Distributed Execution](awsflow-basics-distributed-execution.md)
+ [Task Lists and Task Execution](awsflow-basics-task-lists.md)
+ [Scalable Applications](awsflow-basics-scalable.md)
+ [Data Exchange Between Activities and Workflows](awsflow-basics-data-exchange-activities-workflows.md)
+ [Data Exchange Between Applications and Workflow Executions](awsflow-basics-data-exchange-workflows-application.md)
+ [Timeout Types](swf-timeout-types.md)