SaltStack provides for more complex configuration management than Ansible (another Python-based) configuration management tool. Some people have criticized Salt for having too many new vocabulary words. Like all complex technologies, they take time getting used to. To help learn about Salt, I thought I'd provide an overview.
An SLS file is a SaltStack State file. This file is the basis for determining the desired configuration of the client servers that are called Salt Minions. A pre-written State file is called a formula in the world of SaltStack. Just like sodium and chloride can be the basis of other compounds, formulas can be the basis of complex desired state configurations. Grains, in SaltStack terminology, are data about a Salt Minion. A grain may include information such as an OS type of a Minion server. The data is generated from the minion. Pillars are data about Salt Minion servers too. But pillars are are stored on the Salt Master server. Pillars are encrypted, and they are ideal for storing sensitive data that should only go to certain Salt Minion servers. Pillar sls files have data like a state tree (a collection of sls files) except that pillar data is only available for servers that have a given "matcher" type.
Beacons, in the context of SaltStack, are constant listeners for a condition to be met. If used properly the beacon can have a corresponding action to be taken from the "reactor system." A reactor sls file will have a condition and trigger an action because of the beacon listener.