The basic form of AMMs involve "liquidity pools" that contain two assets. The equivalent amount of AssetA and AssetB by value, this value ratio is set by the initial pool creator but if its out of line with market expectations people will buy and sell until it is corrected. For illustrative purposes lets just say Ether (Ethereum native token) and Link (from the Chainlink project).

So this pool is really two pools, in the ballast analogy think of each as two separate silos next to each other filled with liquid evenly. When someone outside of this wants the LINK token, they must bring Ether, which adds Ether to the Ether silo, and subtracts Link from the Link silo. Despite the quantity changing, value wise the remaining Link has gone up in value proportionally, which is kept track of simply because the system understands that the ratio has changed. The ratio winds up matching market prices everywhere. It will match the price of Link priced in Ether priced in dollars on all the other price tracking services. So that's pretty genius.

User experience wise, every order is essentially a market order, as there is no way to have different sized orders at certain price levels get matched. (you have to understand how posted-order exchanges work to understand that sentence, in traditional markets, volume has nothing to do with price movements it simply winds up having a 99% correlation by coincidence.) In AMM systems every trade moves the ratios based on the size of the order, and how big the silos are to begin with.

But that's where there is the permissionless nature of anyone being able to join the liquidity pool, and earn a portion of all trades that pass through it. So this aspect is more advanced than requiring professional market makers (or pretending they don't exist in crypto while being extorted by all centralized exchanges to contract with them, but never admitting to your community that they're there so that the regulators don't curb stomp you and your project).

So now, any community that wants liquidity can just create a liquidity pool, instead of begging exchanges to list their token and spamming Coinbase and Binance's twitter and telegram all day forever. It is completely permissionless, but now you've reached the edge of what that system can do. The further advances are all external, for example, you absolutely can create limit orders by just monitoring the ratio of a liquidity pool, the ABI of those smart contracts have a convenience function you can call. And also joining liquidity pools are incentivized by third parties, and this is what yield farming is. It is all the craze because it is intrinsically linked to the growth of AMM system's liquidity and volume. When you join a liquidity pool, you receive a liquidity pool share which is a new token that represents your % of the pool. The "LP" acronym is ironically the exact same function as a Limited Partner in a pe/hedge fund. This share is a bearer asset which can be deposited in other places that let you earn third party tokens that have their own utility and price. This is farming. You plant your share and earn a yield.

The final thing to point out is that the liquidity pools have cross liquidity pool routing.

So back to our example, Lets say you have Tether instead of Ether. The AMM systems will take your tether, route it through an existing Tether/Ether liquidity pool, your the Ether through the Ether/Link liquidity pool and give you Link. They will do 4-5 hops or more and judge the most liquid route.

So yet again, more advanced than posted-order exchanges because you don't have to beg for any particular trading pair, and you don't have to switch assets in advance manually.

If you understand this then you've made it to last summer. Where we are at now is that there are plenty of services that let you trade using liquidity between multiple AMMs, 1inch exchange is the most popular for that, the current developments are the ability to trade across multiple AMMs on multiple blockchains. But note, individuals build their own bots to do it whether a big project has made this easy for others or not.