Node Reputation Manager
Project detail
Overview
The scenario is that we have several different servers that are being used to execute tasks. We want to track over time which servers are the best behaved (things like uptime, speed of execution of a task etc, but the list will change over time). Generalizing this a bit more, we will consider servers “participants” so that we can track other items.
The project will entail building a module that is responsible for creating a reputation score for each participant in a list, so that the right participant can be given the right tasks (e.g Writing a file, Storing a file etc.). How the reputation score will be calculated will vary depending on the task being executed.
Reputation factors are the elements that will impact participants’ reputation in the list of participants for example time required to perform specific task, or whether the result was in expected bounds.
Overall Data Flow
To give some background, this module will be just part of a wider system:
The participant will work on a task, and this will generate “Reputatation factors”. (out of scope)
Those Reputation Factors can be used to calculate the change in reputation score for a given participant. (This task)
The change in reputation score will be stored, and then an overall score for the participant can be queried (out of scope)
Requirements
Come up with generic implementation for computing changes in a participant’s reputation such that we can add new ways of scoring in the future.
What is required is that the generic module/package needs to be used by different projects , so it needs to have a way of accepting inputs, setting rules and based on the input needed to implement/come up with output of reputation statistics. (please refer some way of the sample structure)
Some hints for implementation are provided, but feel free to suggest alternatives.
Out of Scope
Storing the results.
Creating an aggregated history of results e.g. which are the good, and which are the bad servers.
Sample Data / Data Structures
These are just mocks / pseudo code, to give some hints about how you might create this. We are very much open to better suggestions. Please, review the attached images on the job post for the samples structures.
-If you read the job description (Images Attached Included), and have the requirements to complete it successfully, please enter “Node Reputation Manager” on your proposal.