For multiple products (with different teams) creating one huge solution,

How would you structure the automation framework? Here are few options:

Solution 1 – Separate frameworks for all products

Solution 2 – One framework for all products across the same automation type

Solution 3 – Common framework and libraries for each automation type, with separate POM and tests layer for each product

There can be other ways, these are the three I have seen been used over the years.

Which one do you think would suit best for this structure:

– Different teams working on separate products eventually all joining to become one huge solution
– All these products have separate time-lines, but are also interdependent on one another
– End to End tests will obviously be needed to verify across all the product lines as one holistic solution

(I don’t want to share my choice upfront to avoid any bias)