Asynchronous Communication

Registered by Sahid Orentino

The primary point of this expected discussion around asynchronous
communication is to optimize performance by reducing latency.

 1. When communicate between inter-services
 2. When communicate to the database

A change to also is need:
  - Add new method which will return without to block the
    process an object let's call it "Future" which will provide some basic
    methods to wait and get a response at any time.

The benefice for Nova will comes on a higher level:
  1. When communicate between services it will be not necessary to block
      the process and use this free time to execute some other computations.

  future = rpcapi.invoke_long_process()
  ... do something else here ...
  result = future.get_response()

  2. By updating the framework objects and indirection api we should
      take advantage of async operations to the database.

  MyObject = MyClassObject.get_async()
  ... do something else here ...
  MyObject.wait()

  MyObject.foo = "bar"
  MyObject.save_async()
  ... do something else here ...
  MyObject.wait()

All of this is to illustrate and have to be discussed.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Sahid Orentino
Direction:
Needs approval
Assignee:
Sahid Orentino
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Sahid Orentino

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.