ADR-85: Profile Pictures

More details about this document
Latest published version:
https://adr.decentraland.org/adr/ADR-85
Authors:
guidota
Feedback:
GitHub decentraland/adr (pull requests, new issue, open issues)
Edit this documentation:
GitHub View commits View commits on githistory.xyz

Context and Problem Statement

While developing Channels' social feature, it was needed to render profile images when listing channel members or displaying messages for people that is not a friend or is not nearby in the world. Retrieving a profile image from the Catalysts implies knowing which is the file in the Content server and it can be hard to know with just the address of the user.

Considered options

Decision

The first option implies a huge impact on performance and user experience because it has to wait for all users to resolve their profiles in order to display the information. The second option implies the possibility of inconsistencies. It introduces a complex logic in the Kernel that is hard to maintain and doesn't guarantee the existence of the image.

The decision is to implement an HTTP endpoint that given a user address it returns the corresponding image from the Catalysts. It can also be re-used by other systems:

GET https://synapse.decentraland.org/profile-pictures/{address}

Internally, it will retrieve the user Profile from Lambdas and redirect the request to the corresponding URL (face256) or a default image in case of Profile absense.

Status

Accepted

License

Copyright and related rights waived via CC0-1.0. DRAFT Living