We can add fields dynamically. The client apis support alter commands.
The predicate definition in Dgraph does not directly support addition of metadata. By extension, the query language also does not have any metadata flex. However, you could name your predicates with a url like syntax your-business/firstName. You could then make this url text point to metadata, either as a simple node in Dgraph itself or some other service. There is no way to dynamically “join” this information at runtime from Dgraph directly, but clients can query this metadata and construct queries accordingly.