Aggregate Data Views

The default mode for Fission apps is more like native mobile or desktop apps: a single user is logged in and editing / operating on their own data. Their own file system can be used as a database.

This scales to 10s, 100s, or 1000s of users all using the same app, executing on their local machine, and working with their own data.

But it means that Aggregate Data Views work a little differently. We’re going to define two different types of these aggregate views:

Shared Views

Multiple people with Fission accounts who share data with each other.

This is the standard, logged in, collaboration use case that most multi-user apps function as.

It also leads to very dynamic interfaces, like real time editing or other collaborative tasks.

We will provide this in the SDK alongside group access control, making it easy to build these types of collaborative apps, in a way that evolves from the single user app style.

Public Views

This is when an anonymous / not logged in user visits a web address, and can see (dynamic) data from multiple people.

Two examples from the early apps we’ve got here:

  1. A public view of quotes that users have tagged as public for Quotes App, perhaps at

  2. A global high score leaderboard, eg. for a Tetris clone written in Elm

Some public views might be appropriate to publish statically. But that leaves out a lot of features. We want the app to have access to data so that it can be shared / shown publicly.

1 Like

@forgondolin just a note, that I realized after talking about leaderboards, that we don’t actually have anything in the SDK to support this right now.

You could build a leaderboard … but it would only show your own scores! And no (easy) way to even share those scores with others!

1 Like

Perhaps to disambiguate from the “public segment” of WNFS, this is a single, global, unified view. (Not suggesting a term change per se, just clarifying for the thread).

Or you could build it with pointers to your friend’s data, so you can do essentially a “track my friends” view. Today only public scores, but sharing private files coming soon!

1 Like

I was searching the API’s something to work with, but @expede gave a good idea. One dumb question, how do I assure that only public scores in the application?

Write files to a well known location /public/Leaderboard/scores.json

User adds their friends by username, app looks up friends’ scores at the well known location.

Someone will correct me if I got this wrong :wink:

2 Likes

That’s how I’d do it, yeah :+1:

We’ll almost certainly build these kinds of social use cases into the SDK directly down the road, since it’s so useful / common