what structure to use: modules within fluidRow OR fluidRow within module ?

I've created a prototype without modules where I have a fluidRow that contains:

column 1 (a bunch of inputs)
column 2 (a table of results returned by querying a connected sqlite db)
column 3 (a plot of average results based on those same results
column 4 (a plot of individual system results, also based on the query)

I want to be able to have multiple rows like this so that these same four columns can be displayed for different data in the DB with different metrics and targets. My first attempt simply copied the code and renamed the ids, but clearly that would look silly after the second row, so I want to implement modules for each row. For reach row, the input parameters will be different, and a different table in the database may be queried. In other words, each row is a particular query to some part of the database. (So I'll probably call it queryModuleUI and queryModuleServer.)

When I see tutorials (I'm very new to Shiny), it appears the UI components in a module are routinely packaged within a tagList. I'm confused about how that would work when I want to use a fluidRow as the main organizing feature for my fluidPage.

Should the fluidRow and its associated columns be coded within queryModuleUI, or should the module simply contain code for the inputs and outputs (these being returned in a taglist), with the fluidRow and column formatting coming from the main app’s ui.R file?

The fluidRow within the module would be cleaner in the app.R file. I guess it would depend on what works best for you. You can combine a lot within the modules.