When you lend or borrow at a fixed rate, you are trading fCash on Notional's native liquidity pools. Liquidity providers in the pool act as counterparty to all lending and borrowing by end users.
A Notional liquidity pool holds Prime Cash and fCash (Prime DAI and fDAI, for example). Every liquidity pool is specific to a maturity: a Dec 1 2021 liquidity pool holds Dec 1 2021 fCash.
Three user types interact with Notional liquidity pools: lenders, borrowers, and liquidity providers. Lenders deposit Prime DAI into the pool and receive fDAI (a promise to receive a fixed amount of DAI at a future date). Borrowers take Prime DAI from the pool and deposit fDAI (a promise to pay a fixed amount of DAI at a future date). The liquidity provider adds Prime DAI and Dec 1 2021 fDAI into the pool which can be lent or borrowed by either party.
The interest rate that borrowers and lenders get depends on the proportion of Prime Cash in the liquidity pool vs. fCash. The more Prime Cash in the pool, the lower the interest rate. The more fCash in the pool, the higher the interest rate. The interest rate is determined by Notional's AMM.
As users lend and borrow, they change the liquidity pool's proportion. When users lend, they put in Prime Cash and take out of fCash. When users borrow, they put in fCash and take out Prime Cash. This makes the interest rates on Notional reactive to the balance in supply and demand for borrowing vs. lending. The more users lend, the lower the interest rates go and the more users borrow, the higher interest rates go.