Identifying which teams will be involved and what responsibilities they’ll cover.
Dividing the new functionality in smaller tasks that will be estimated accordingly in order
to create a development roadmap.
Finding possible corner cases in order to preemptively identify and solve them.
Reaching a consensus between different affected teams in terms of defining the different
functionalities and flows.
Involved
teams
This initiative will require a cross team effort that will include the following teams:
Explorer: for the UI, UI functionalities and integration with Kernel.
dServices: for the creation of new functionalities required such as obtaining the info of
the received and sent friend requests from backend to kernel (dates, profile pictures,
mutual friends, etc.).
The different responsibilities will be covered in more detail in the analysis of each part of
the feature. A tag to the respective team will be placed next to each functionality.
Approach
For this to work we need to synchronize the information between the Renderer, Kernel and
Matrix servers.
Due to the current architecture implemented in the backend side, the idea would be to use
always Kernel as a bridge between the Renderer and the Matrix server. So any communication
needed between both sides will be done through messages in Kernel↔Renderer and the message
exchange is defined by RPC calls.
In terms of needed communications, we have identified the next main dependencies between
Client and Backend:
GetFriendRequestsPayload {
int32 sent_limit = 1; // Max amount of entries of sent friend requests to request
int32 sent_skip = 2; // The amount of entries of sent friend requests to skip
int32 received_limit = 3; // Max amount of entries of received friend requests to request
int32 received_skip = 4; // The amount of entries of received friend requests to skip
}
GetFriendRequestsReplyOk {
repeated FriendRequestInfo requested_to = 1; // Friend request info on the requests you've sent to users
repeated FriendRequestInfo requested_from = 2; // Friend request info on the requests you've received from users
int32 total_received_friend_requests = 3; // Total amount of friend requests received
int32 total_sent_friend_requests = 4; // Total amount of friend requests sent
}