Update progress and Status update on Client side will be a great feature if it can be introduced in the Client side itself. Here is a suggestion I would like to offer:
Possibility of converting the client to locally communicate with other processes using a pubsub model. Using implementations like gRPC, JSON-RPC, WAMP-protocol and the likes can help achieve this.
Because even embedded devices have various other services running and therefore scenarios for, when an update should be performed, can be contextually set by the end user. So,these services can make the mender client aware about when to perform updates rather the Mender client itself taking the load to keep polling and go heavy on the server.
This will also hopefully eliminate the need for polling mechanism and reduce load on the server too.
Eg: In automative sector, if mender client is running on the edge device, then the implementer can set specific scenarios as to when to perform an update or probably even delegate the update to the end User.
The current implementation seems to put lot of pressure on the server end and the entity running and maintaining the Server using a remote deployment approach, rather if the initiation of update can be delegated at the client end then it can help simply the process a little by little.
@mirzak let me know what are thoughts on this?