GATT (Generic Attribute Profile) is BLE's data model for how a connected central and peripheral exchange structured data, organized as a hierarchy. At the top a device (the GATT server, usually the peripheral) exposes Services, logical groupings of related data, like a "Heart Rate" service. Each service contains Characteristics, which are the actual data values, like a "Heart Rate Measurement" characteristic, and each characteristic has properties defining what the client (GATT central) can do with it: read its value, write a new value, or subscribe to it via notify or indicate so the server pushes updates. Notifications are the efficient, power-saving pattern: instead of the central polling the characteristic repeatedly, the peripheral sends an update only when the value changes, minimizing radio-on time on both sides (indicate is the acknowledged variant). Below GATT, GAP (Generic Access Profile) handles advertising, scanning, and connection establishment, the peripheral advertises and the central scans and connects, then they talk over GATT. So the mental model is: GAP gets you connected, then GATT exposes a tree of Services → Characteristics that you read/write/subscribe, with notify being the key mechanism for low-power event-driven updates.
Networking & IoT · Interview question
Explain the BLE GATT model.
A strong answer
What a weak answer sounds like
You know the answer. Do you know what gets you dinged?
Pro breaks down the answer most candidates actually give to this question — and the specific reason an interviewer marks it down. It’s the difference between sounding correct and sounding senior, on all 472 questions.
From the lesson
BLE & WiFi for Embedded
Two wireless worlds: BLE's ultra-low-power short-range GATT model (wearables, sensors, phone-tethered) vs WiFi's high-bandwidth, IP-native, internet-direct connectivity, and the power tradeoff.