We would recommend having a full read through of the Perennial mechanism to get a good idea of how things work. In this section, we'll call attention to some of the nuances of Perennial that developers may encounter.
1st: Perennial only allows for collateral in USD (namely, USDC/DSU) & all P&L is settled in the colalteral account. See the Maintenance section for more info on collateral. However, developers can build on top of other borrow / lend protocols to use other tokens as collateral (ex. deposit ETH into compound, borrow USDC and deposit it as collateral on Perennial).
2nd, Perennial (like all other no-price-impact derivatives protocols) has a delayed settlement mechanism, meaning that trades are not settled instantly. See Settlement for more info. To prevent obvious arbitrage opportunities in this form of derivative protocol, protocols must either charge significant fees (effectively price impact) or delay settlement for a short period of time (opening the door to some amount of slippage). At launch, Perennial has opted for the latter route, though in the future we may offer both. It is important that we keep trading fees low to support the profitability of structured products & strategies that require frequent rebalancing. While fees directly eat into P&L — slippage, over time, nets out to 0 (probabilistically speaking). At launch, Perennial is built upon Chainlink main oracles, which update around every 2-5 minutes with a trigger of 5bps deviation (meaning a projected slippage of +/- 5bps).
3rd: Though unlikely, it is possible for takers to not be matched 1:1 with makers (meaning taker exposure) would be less than 100%. See the Profit and Loss section for more info. Perennial has mechanisms & procedures internal & external to the protocol to prevent. And in the event it does occurs, it is likely to be extremely short-lived (arbitrageurs have a huge incentives to close the gap ASAP).