Current Bridge server devs want to migrate off Play Framework . Here is a plan for doing so in an incremental way.

BridgeServer2 (https://github.com/Sage-Bionetworks/BridgeServer2)

BridgePF (https://github.com/Sage-Bionetworks/BridgePF)

Steps:

  1. Create a domain such as webservices-old.sagebridge.org, which points to BridgePF (and remains so through the end of BridgePF's lifecycle).
  2. Bridge-New will initially be a thin service that forwards most or all calls to BridgePF.
    1. Figure out CORS and SSL.
    2. Request ID that's sent from Bridge-New to BridgePF, so we can map between Bridge-New requests and BridgePF requests.
  3. Implement error handlers and interceptors in BridgeServer2.
  4. Move all non-Play code to a separate package to be consumed by BridgePF and BridgeServer2.
  5. Flip DNS so webservices.sagebridge.org points to Bridge-New. Traffic now comes to Bridge-New and is forwarded to BridgePF.
  6. Implement new Controllers in BridgeServer2. Migrate old Controllers and other Play-specific code at our leisure.
  7. As APIs are migrated to Bridge-New, BridgePF will get less and less traffic.
  8. When all APIs are migrated, BridgePF will get no more traffic, and we can shut it down.
  9. Move the shared code from the shared package to BridgeServer2, so that version management is easier.