Where production models live
The Functional API treats layer calls as function calls operating on symbolic tensors. You start with keras.Input(...), pipe tensors through layers, and pass the resulting tensors to keras.Model(inputs, outputs). This supports any directed acyclic graph (DAG) — branches, skip connections, multi-input, multi-output.
Almost every model in keras.applications (ResNet, EfficientNet, MobileNet) uses the Functional API. Reading those implementations is good practice — they're the canonical examples.
The two patterns you'll use most: residual blocks (add skip connection back into the main path) and multi-input models (image branch + metadata branch, concatenated before the classifier).