1. Workflow
    1. Client posts to Sinatra app
      1. API Request Scenarios
        1. Request API Format structure?
        2. Request when Sinatra down
        3. Large number of requests to Sinatra, can we take it?
        4. 400 response from Sinatra, is it possible?
    2. Sinatra app
      1. Actions
        1. Converts the request into CF compatible
        2. Posts the request to CF
        3. Receives code response from CF and forwards to Client
          1. 200
          2. Creates transaction in workflow
          3. 400
          4. Request retries from Client
          5. Frequency?
          6. 500
          7. Workflow Down
          8. Request retries from Client
          9. Frequency?
        4. Receives and Converts the result into client compatible format
        5. Posts the results to Client app
          1. Result API format verification
        6. Receives code response from Client and forwards to CF
          1. 200
          2. Successful
          3. 400
          4. Request retries from CF
          5. Frequency?
          6. 500
          7. Workflow Down
          8. Request retries from CF
          9. Frequency?
      2. Attributes
        1. Secret Key from client Stored
          1. Generates Signature at Sinatra
          2. Matches the value with Clients Signature
          3. Successful match
          4. 200 OK response
          5. Unsuccessful match
          6. 200 along with failure message
        2. Saves no API data
        3. Keeps Users Private and Public keys
        4. Keeps Template ID/Access hash
          1. Configure option?
    3. Client Platform(Workflow)
      1. Processes transaction
      2. Sends the result to Sinatra
        1. Completed
        2. Returned
  2. Trail testing
    1. End to End testing with client on Monday