Fail early and fail loud -require used Access control Modifiers defined to restrict acces to the implemented features Withdrawal Pattern The function defined to buy a product doesn't transfer funds to the store but increase the credit. Circuit Breaker OpenZeppelin Pausable