Las filas por tabla no serán un problema por sí solas.
En términos generales, 1 millón de filas por día durante 90 días son 90 millones de filas. No veo ninguna razón por la que Postgres no pueda lidiar con eso, sin conocer todos los detalles de lo que está haciendo.
Dependiendo de su distribución de datos, puede usar una combinación de índices, índices filtrados y particiones de tablas de algún tipo para acelerar las cosas una vez que vea qué problemas de rendimiento puede tener o no. Su problema será el mismo en cualquier otro RDMS que yo sepa. Si solo necesita 3 meses de diseño de datos en un proceso para eliminar los datos, no necesita más. De esa manera, tendrá un volumen constante de datos sobre la mesa. Tiene suerte de saber cuántos datos existirán, pruébelo para su volumen y vea lo que obtiene. Probar una tabla con 90 millones de filas puede ser tan fácil como:
select x,1 as c2,2 as c3
from generate_series(1,90000000) x;
https://wiki.postgresql.org/wiki/FAQ
Limit Value
Maximum Database Size Unlimited
Maximum Table Size 32 TB
Maximum Row Size 1.6 TB
Maximum Field Size 1 GB
Maximum Rows per Table Unlimited
Maximum Columns per Table 250 - 1600 depending on column types
Maximum Indexes per Table Unlimited