static-vs-dynamic-schemas

Static schemas can enforce many things at compile time, whereas dynamic schemas don’t. This means that static schemas are more strict but neither forwards or backwards compatible (you can’t add a new field, remove an old field, change a field), but dynamic schemas can do any of those with the cost of having schema skew.