Virtual Spaces are where real-time interactions and experiences happen online. Every modern app, regardless of industry, starts with a Virtual Space to create online places where people can engage with each other just as authentically as they could face-to-face.
Put another way, a Space is the logical representation of a virtual or physical interaction where a user or group of users collaborate and communicate. A Space might be a long-running entity where members work together to achieve a quarterly business goal. Or a Space might only exist for the duration of a sporting event, allowing fans to react as their team wins a crucial match.
Spaces will have attributes appropriate to their purpose. Some attributes will be generic and apply to all Spaces such as ‘name’ and ‘description’ but other attributes will be specific to the Space’s domain, for example not all Spaces would contain geolocation data, and only ‘Chat’ Spaces would have a typing indicator.
Some examples of a Space and its attributes:
A Collaborative chat application will have different spaces where users can interact, for example, “ask-engineering”, “ask-it”, “ask-customer-support” etc. Each space would contain a list of members, details about the message channel, and user presence.
A 1:1 Chat space where users interact 1 on 1. Similar to chat groups this space would also have members, channel details, and user presence but the group would only have 2 members and show typing indicators.
A “Driver-passenger” space might be used in logistics or food delivery applications. This space would be augmented with geolocation data to track the interactions.
A “Home” space for home automation, the space would contain the concept of device command and reporting, to control the IoT devices.
A “Game-Audience” space, where fans can encourage, support, and influence players of a multiplayer game. This Space would track the progress of the game and allow for a replay of highlights.