Background:
I have always found that nature tends to take care of itself if provided the right materials. I think this is doubly so when you have an ecosystem that is able to run by itself.
The idea of a self-sustained aquatic system, where the waste of one organism is broken down and used as food for the other organisms which provide nutrients and food for other organisms in a constant ever-looping cycle has always fascinated me. I have tried to replicate this idea of a closed loop ecosystem as much as possible in my aquariums.

The main parts of this aquatic system are:
The soil and microorganisms in the soil:
This part breaks down nitrites and nitrates from larger organism waste and provide nutrients and a rooting system for the plants (a small Winogradsky column will form in a natural aquatic soil setting)
The plants:
This part provides a filtering system for the water and removes CO2 buildup in the water while providing oxygen to the larger organisms. depending on additional equipment, such as a CO2 tank, these large plants can also deter growth of algae on the aquarium glass and environment.
The macro-organisms:
This part can vary quite largely, but the main idea to keep in mind here is Bio-load. Bio-load refers to the amount of waste buildup that needs to be broken down and repurposed as nutrients for other parts of the ecosystem. A general rule of thumb is that a higher Bio-load leads to more effort to keep an ecosystem in check. Likewise, larger organisms have larger Bio-loads.
Macro-organisms can be as small and versatile as freshwater shrimp or crawdads (LOW Bio-load) or bigger organisms such as small fish or small frogs (MEDIUM Bio-load), or bigger Bio-loads, such as predatory fish (HIGH Bio-load).
Additionally, the more macro-organisms that are in the system, the larger the Bio-load.
Light:
this is not normal aquarium light, but actual sunlight (for small amounts throughout the day, or artificial grow lights that can replicate the requirements needed for plants to grow indoors.
