Thanks for the responses.
As mentioned by @kelly, I tried with multiple raw reflections (one for every month).
In this case, If i have a query spanning more than that month, it goes to the source instead of accelerating query using reflection for that month. so I end-up creating a rolling view with the joins (which can be managed using the REST apis)
I also tried creating aggregated reflections and they doesn’t work like I thought they will work (as in other BI modeling tools). They only came into effect when the data is for that specified time window otherwise the query gets accelerated by raw reflections.
There is a huge performance difference between raw and aggregate reflections.
Any thing I am missing?