If a company adds chat to its app, it may have its own customer base. If you're building a SaaS application, one customer must not have access to the chat information of another customer, primarily if these customers exist within the same competitive landscape.
For example, imagine if a company had both Nike and Adidas in their clientele, and somehow their private messages were exposed to one another, or they could look each other up in the user search. To avoid this kind of security-breaching disaster, Stream Chat can be configured in multi-tenant mode so that users are organized in separate teams that cannot interact with each other. You could do this logic yourself, but why take that risk?
Teams in Stream Chat provide a simple way to divide users and channels into different groups within a single messaging application. If a user belongs to a team, the API uses Stream's logic to ensure that said user is only allowed to connect to channels from the same team. Features such as user search can be configured so that a user can only search for users within the same team. Stream sets up and handles all of the details to run and maintain this logic without any mistakes that might result in a data-sharing mishap within your customer base.
Display of single vs multi-tenant architecture
For more information on how to enable Teams for your messaging application, read this Multi-Tenant and Teams Doc.