In herbstluftwm the layout is based on splitting frames into subframes which can be split again or can be filled with windows, Tags (or workspaces or virtual desktops or ...) can be added/removed at runtime. Each tag contains an own layout and exactly one tag is viewed on each monitor. The tags are monitor independent.
It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup.