Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

  • How to Create multiple versions of an Application:

    POST /v3/namespaces/<namespace-id>/apps/<app-id>/versions/<version-id>/create
    Body: "artifact": { "name": "WordCount", "version": "3.5.1", "scope": "user"}, "config": {"stream": "purchaseStream"}

          version-id: Needs to be composed only of alphanumeric, -, _ and . 

          Note:
          i) If a version-id is not specified during application creation, '-SNAPSHOT' is used as the application version
          ii) If a version-id ends with '-SNAPSHOT', then that version is mutable and it can be updated using the update app endpoint (more details below). 

 

  • How to start/stop programs of a particular version of an Application:

    POST /v3/namespaces/<namespace-id>/apps/<app-id>/versions/<version-id>/services/<service-id>/start ( stop )

    Note: We don't support concurrent runs of the same Flow and Worker across multiple versions. That is, flow F1 in v2 of app MyApp can't be started when flow F1 in v1 of app MyApp is running.

  •  How to delete a version of an Application:

    DELETE /v3/namespaces/<namespace-id>/apps/<app-id>/versions/<version-id> 

    Note: No program of this version should be running.

 

  • Service Routing: 

          Deterministic routing - call methods of a service of a specific version (service of that version should be running)
          METHOD /v3/namespaces/<namespace-id>/apps/<app-id>/versions/<version-id>/services/<service-id>/methods/<method-name>
          Note: Deterministic routing through version-id in the REST API works only in SDK. In distributed mode, as a workaround, the routeconfig can be used to set 100% routing to a version that is desired. This will be fixed in 3.6.
 

          Configuration based Routing – configuration based routing will be used when the method call is made to non-versioned API:
          METHOD /v3/namespaces/<namespace-id>/apps/<app-id>/services/<service-id>/methods/<method-name>

          Say, if the configuration is : { "v1" : 30, "v2" : 30, "v3" : 40 } : 30% of requests are routed to version v1, 30% requests are routed to version v2, 40% requests are routed to v3

  • Route Config Management:

    Upload Route Config:
    PUT /v3/namespaces/<namespace-id>/apps/<app-id>/services/<service-id>/routeconfig -d '{ "v1" : 30, "v2" : 30, "v3" : 40 }'

    The route %s should always integers and should sum to 100. Otherwise the config will not be accepted.

    View/Get Route Config:
    GET /v3/namespaces/<namespace-id>/apps/<app-id>/services/<service-id>/routeconfig

    Delete Route Config:
    DELETE /v3/namespaces/<namespace-id>/apps/<app-id>/services/<service-id>/routeconfig

    Note: If a route config is not present, a random endpoint will be chosen among all the versions. 
  • No labels