**************** Folder Structure **************** A basic solution folder structure mainly consist of the following folders mentioned below. Taking goliath solution as an example here. The structure is as follows:: $ tree -L 1 /home/user/stash/goliath/ /home/user/stash/goliath/ ├── bld ├── dev_env_bootstrapper ├── drive -> /home/user/unscrambl/software/package_cache/rhel07/drive-2.3.0/drive ├── etc ├── infra -> /home/user/unscrambl/software/package_cache/rhel07/infra-3.5.3 ├── Makefile -> dev_env_bootstrapper/Makefile ├── pom.xml ├── src └── test Let's go through each folder and understand the contents within it. ``bld`` folder ============== The ``bld`` folder mainly contains the generated or compiled code. It also contains the installation files which one would find in an installer tarball. The structure is as follows:: $ tree -L 1 /home/user/stash/goliath/bld/ /home/user/stash/goliath/bld/ ├── current_arch -> /home/user/stash/goliath/bld/rhel07 ├── external_dependencies -> /home/user/unscrambl/goliath/1.0.0/rhel07 └── rhel07 Based on your running operation system (``rhel07`` / ``rhel08``) a folder would be created. Some of the important paths are: - ``UNSCRAMBL_HOME`` = /home/user/stash/goliath/bld/rhel07/install/goliath/drive/ - This folder contains the compiled code, executables and configuration files for the product qbo Decisions. - ``UNSCRAMBL_INSTANCE_HOME`` = /home/user/stash/goliath/bld/rhel07/instance_home/goliath - This folder contains the runtime generated files and logs. This also contains the flat files where NameService, Kafka, PinPoint and FastPast store their data. - Also, for feed applications which use files for input data, the default input file path would be here. ``dev_env_bootstrapper`` folder =============================== This folder contains the scripts which sets up your bash environment, Python environment, environment variables and other environment settings required to build, develop and bring up the services. This also contains a ``Makefile`` which is referred when any make command is executed. ``drive`` folder ================ This folder contains the built product code which the solution would be referring to. ``etc`` folder ============== This folder contains solution based configuration files. This will explained in more detail in the :ref:``configuration `` section. ``infra`` folder ================ This folder contains the built infra code which the solution would be referring to. Infra contains some build related code, helper classes and methods and commonly used utilities such as database conectors, logger methods, etc. ``Makefile`` file ================= This is actually a symlink which points to a Makefile within the ``dev_env_bootstrapper`` folder. ``pom.xml`` file ================ Parent pom file for the solution which is required as part of the Java build of the solution. This file would contain the Maven dependencies that the solution imports and build plugins required. ``src`` folder ============== Contains solution code for the feed applications and helper functions. ``test`` folder =============== Contains test code for running automated test on the solution's feed applications.