Application entry

Application entry-point

The framework library expects an entry-point. The entry-point to an application is a callable method. It accepts one parameter and returns a set of callbacks. It should be configured in the PKG-INFO file of that application.

The format for the entry-point is as below

module.path:callable_name

Let’s say the entry-point callable entry_point is defined in your app’s module example_app.entry_module, then the entry-point should look like

example_app.entry_module:entry_point

Application States

The entry-point accepts one parameter. This parameter signifies the state at which the application is started. At any time, only one of the following states is applicable.


  • STATE_STARTED

    It means that the application is started afresh. The application can initialize when this state is received.

  • STATE_RESTARTED

    It means the application is restarted after recovering from a crash. This state is not supported for now and is reserved for future use.

  • STATE_MIGRATE

    It means the application is getting upgraded and this is the first call to the upgradation process. Any initialization needed for the migration process can be done in this state.The application will not listen to any requests from the client while in this state.

  • STATE_POST_MIGRATE

    It means the application is getting upgraded and this is the final stage of the upgradation process. This state is equivalent to STATE_STARTED except that this signifies that the application has just now completed migrating its data from the old app.

  • STATE_VALIDATION

    This is called mostly by the packager which does the package validation. This state expects only the routing parameters from the entry-point, so any initialization done in this state will fail.

Application callbacks

The application entry-point should return a set of callbacks relevant to the application state. The return type is a dictionary (key-value pairs). The values for each field is a callable and the key being one among the following.

  • CALLBACK_ROUTES

    The callable should accept one parameter, which is an object to the mapper of python routes module. Through this callback the application can register all the URL routes. This callback will be invoked on all the application states except STATE_MIGRATE.

  • CALLBACK_CLEANUP

    The value should be a callable which accepts no parameter. This is invoked when the application is asked to quit. When it is invoked the application will not serve any incoming requests, however it will wait till the application finishes serving earlier requests. This callback should close up any persistent connections like websockets. If the cleanup is proper, the application will quit imediately after serving the last HTTP request, else the application will be terminated after some time.

  • CALLBACK_MIGRATE

    This callable accepts one parameter which contains the previous version of this application that it is migrating from. After this callback is returned, the application quits immediately.

    This callback will be invoked only on STATE_MIGRATE.

    Any data migration from the previous version should be done here. While migrating, the older application will still be running, so the migration should not affect the older application.

  • CALLBACK_MIGRATE_COMPLETED

    This callback is invoked on the new process that is running on state STATE_POST_MIGRATE. This is invoked as soon as the old process quits after serving all its pending connections.