Meteor patterns for redirecting while passing large dataset

We have a report that works well, its basically a map that shows where our customers are. On that map we can select some locations and some options and show some metrics about for example how many customers are in Kansas. There is probably a sane upper limit of 250,000 customers in a location. Once that selection is made we can generate a csv with various details (email etc.), for follow up. That works well for csvs.

The current requirement we want to be able to redirect to a report with the csv content as a list, instead of downloading the csv. If I have a quick task, I can look at the csv contents in the browser without needing to down load it.

Final note, is that we have a fairly large number of reports that have download csv as an option (customers from different years, different purchase patterns etc.), and they all eventually end up in downloading csvs. The current requirement is only for showing the report from the map, but I suspect we’ll want to leverage this report as a generic improvement for our csv downloads. Redirect to a view of the data, then you can use the list immediately or really download the csv. Whatever I build should probably be fairly generic.

So I’m thinking about how I can pass a large dataset (of users) to a new template. I have a few options in mind, but I’m wondering if anyone has any guidance or experience.

  1. Push the data to a common parent class that can switch to different templates on switch from the map child. So when the user decides to switch to the list, the map pushes the list of customers to a common parent and then triggers the parent to go to the list view.

Think this should work but I feel like this isn’t really the parent’s concern. The parent isn’t concerned with the view or the list, so it feels awkward that it needs to maintain that information. Could work, but feels a bit awkward.

  1. Put the customer list in session (or possibly mongo) and then fuse flowrouter to redirect from the map to the list. Probably okay, I’m not a fan of globals or session for that matter, but I think this is the case where session is useful.

  2. Is there any other way to take advantage of flow router. In theory, in a non-meteor world I’d probably look at posting the list of customers to an endpoint and have it redirect to the list page. So I could pass the list of customers through a post instead of a get. Not sure that’s feasible in meteor, but I suspect there’s a way.

Anything I haven’t thought of?

Thanks for any suggestions, think I’m going to start with looking at taking advantage of session.