ADR-3: Explorer packages organization

More details about this document
Latest published version:
https://adr.decentraland.org/adr/ADR-3
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

As we grow the functionalities of the explorer, the code complexity grows among with it.

Currently the whole explorer codebase is in the decentraland/explorer repository.

It is roughly divided in two big chunks:







G


cluster_0

Unity


cluster_1

Kernel


cluster_2

shared



C#

C#



decentraland-renderer




decentraland-renderer
(wasm)



C#->decentraland-renderer





entrypoints

entrypoints



decentraland-renderer->entrypoints





build-ecs




build-ecs



ecs




ecs



build-ecs->ecs





amd




amd



amd->ecs





scene-system



scene-system



ecs->scene-system





rpc




rpc



rpc->entrypoints





rpc->scene-system





voice

voice



unity



unity



voice->unity





ui



UI + Avatars



ui->entrypoints





entrypoints->unity





preview



preview



entrypoints->preview





builder



builder



entrypoints->builder





loader



loader



loader->unity





gif



gif



gif->entrypoints





scene-system->entrypoints





sagas

sagas



Considered Options

Create a new top-level directory named "website" or "shell" in the explorer repository and slowly start moving browser specific code to it.







G


cluster_0

Unity


cluster_1

Kernel


cluster_3

website/shell



C#

C#



decentraland-renderer




decentraland-renderer
(wasm)



C#->decentraland-renderer





entrypoints

entrypoints



decentraland-renderer->entrypoints





build-ecs




build-ecs



ecs




ecs



build-ecs->ecs





amd




amd



amd->ecs





scene-system



scene-system



ecs->scene-system





rpc




rpc



rpc->entrypoints





rpc->scene-system





voice

voice



voice->entrypoints





ui



UI + Avatars



ui->entrypoints





preview



preview



entrypoints->preview





builder



builder



entrypoints->builder





unity




unity



entrypoints->unity





loader



loader



loader->entrypoints





gif



gif



gif->entrypoints





scene-system->entrypoints





app

app & preview



preview->app





unity->app





css

css



css->app





website

website



app->website





preview.js

preview.js



app->preview.js





redux

redux



redux->app





react

react



react->app





sagas

sagas



sagas->app





web3

web3



web3->app





Decision Outcome

Staged execution:

  1. Build kernel artifacts and publish to NPM

  2. Move react code to new "website" folder continuing consuming files from kernel

  3. (future stages) slowly move sagas and browser specific code to the new website/shell folder

Participants

License

Copyright and related rights waived via CC0-1.0. Withdrawn