Many applications provide the user with reaction options such as like and share. There is a need to represent the reactions to a given observable object. The substance of a reaction could be represented using the existing MessageFacet related to the original observable object.
Requirements
Requirement 1
Represent the number of each type of reaction.
Requirement 2
Link to the details of each reaction (e.g., who reacted and what their reaction was).
Note: the substance of a reaction could be treated as a reply message and, therefore, be represented using the existing MessageFacet.
Risk / Benefit analysis
Benefits
Representation of reaction details surrounding an observable object, which is a pervasive type of information in digital communication and social networking.
Risks
Different types of reaction types could make it difficult to represent the total number of each reaction type.
Competencies demonstrated
Competency 1
In a given application, which message received an "Angry" reaction?
Competency Question 1.1
Who sent the Angry reaction?
Result 1.1
A list of messages that received an Angry reaction
Competency 1
In a given application, which observable objects received an "Angry" reaction?
Competency Question 1.1
How many Angry reactions did the message receive?
Result 1.1
A list of observable objects that received an Angry reaction, and the number of Angry reactions for each observable object.
Competency 2
For a given observable object, who sent an Angry reaction?
Result 2.1
A list of Accounts that sent an Angry reaction to a given observable object
Solution suggestion
Define new ReactionListFacet that contains a list of references to Message observable objects
Do not explicitly represent the total number of each reaction type, this calculation can be part of the query
Represent the details of each reaction in a Message object, including the time, sender, and reaction (Like, Angry, Haha, Heart, Comment, etc.)
Add unit test showing potential errors in property usage and how to avoid them
Background
Many applications provide the user with reaction options such as like and share. There is a need to represent the reactions to a given observable object. The substance of a reaction could be represented using the existing MessageFacet related to the original observable object.
Requirements
Requirement 1
Represent the number of each type of reaction.
Requirement 2
Link to the details of each reaction (e.g., who reacted and what their reaction was). Note: the substance of a reaction could be treated as a reply message and, therefore, be represented using the existing MessageFacet.
Risk / Benefit analysis
Benefits
Representation of reaction details surrounding an observable object, which is a pervasive type of information in digital communication and social networking.
Risks
Different types of reaction types could make it difficult to represent the total number of each reaction type.
Competencies demonstrated
Competency 1
In a given application, which message received an "Angry" reaction?
Competency Question 1.1
Who sent the Angry reaction?
Result 1.1
A list of messages that received an Angry reaction
Competency 1
In a given application, which observable objects received an "Angry" reaction?
Competency Question 1.1
How many Angry reactions did the message receive?
Result 1.1
A list of observable objects that received an Angry reaction, and the number of Angry reactions for each observable object.
Competency 2
For a given observable object, who sent an Angry reaction?
Result 2.1
A list of Accounts that sent an Angry reaction to a given observable object
Solution suggestion
Coordination