As of October 1, 2023, LINE has been rebranded as LY Corporation. Visit the new blog of LY Corporation here: LY Corporation Tech Blog

Blog


Unification of Group Chat on the LINE App

LINE supports not only one-on-one but multi-user conversations as well. There were two types of multi-user conversations in LINE, Rooms and Groups, for different uses.

Rooms were designed for temporary conversations in general. When creating a Room, you didn't need to give it a name. When inviting a friend into the Room, you didn't need to wait for their approval, they joined the conversation immediately after you pressed the Invite button. Everything was designed for quickly starting a conversation.

Groups, on the other hand, were designed for long term purposes. You might already be in many Groups which consist of your classmates, co-workers, or sports club friends. Those Groups have names, so you can easily find them and recall their purposes. When inviting a friend to a Group, their approval is required before joining.

Since people usually stay in a Group for a long time, over the years more and more features have been supported in Groups, to enhance Group members' experiences and help them build closer connections. As a Group member, you can upload photos from your travel to the Group Album to share with others. You can write down important memos as Group Notes. 

People love these features, but they could only use them in Groups and not Rooms. Why? As temporary conversations, we assumed participants in Rooms would not need most of the Group features.

Rooms and Groups unified as Group Chat

By unifying Rooms and Groups, We aim to improve usability and save the resources of servers/clients. Rooms and Groups have slightly different specifications. And regarding API, Storage level, those also had been separated. After chat unification, they are going to be unified into the same spec, except for the way to join a chat. We call the integrated model Group Chat.

Usability issues

Features are different between one-on-one / Rooms / Groups. This is not recognized by non-expert users. Users create a Room without knowing that they won't be able to use features such as Album and Note, then those users switch to using a Group if they need one of those features, while leaving all the chat history behind in the Room. (There is no conversion feature for existing Rooms).

Server/Client resource issues

Rooms are for temporary use, but their data accumulates in our servers day by day. A lot of Rooms consisting of the same members exist, because users create a Room without knowing that one already exists. So unnecessary Rooms have accumulated.

To solve these issues, we decided to unify Rooms and Groups as Group Chats.

Comparison between Rooms and Groups

The table below shows the before and after comparison of unifying Rooms and Groups. 

  • Before chat unification
  • After chat unification

Migrating Groups to Group Chats

First I'd like to explain how we migrated Groups to Group Chats.

API for Group Chats

We've designed a new API for Group Chats. Using dual read, we gradually migrated the previous API to the new one while maintaining compatibility.

  1. At first, Group Chat API supports Group Storage. A router acts to absorb API differences between Group API/Group Chat API.
  2. Roll out Group Chat gradually
  3. At last, create Group Chat only

Group date migration

All Group data was migrated into Group Chat data through a batch process. After migrating, dual reads were stopped and only Group Chat is used.

Migrating Rooms to Group Chats

Differences between Rooms and Groups

As described above, because of different purposes, there are several differences between Rooms and Groups.

Invitation mechanism

The first difference was how a friend was invited to a conversation. When you created a Group with selected friends, or you invited friends into an existing Group, they didn't join the Group immediately. They received an invitation first, then they were able to choose to accept or reject the invitation. Only after accepting it would they join the conversation.

When it's a Room, on the other hand, friends joined the Room immediately after you created a Room or invited friends. Some users thought it was convenient to quickly start a conversion using a Room. And some users thought it was more polite to let the invitee decide whether to join the Group.

Different feature sets

The second difference was that Rooms supported fewer features than Groups. Since Rooms were designed for short-term conversations, features like Group Album were thought to be less useful than in Groups. Over the years, more and more features were added to Groups, but most of them were absent in Rooms.

The new unified model

The Chat Unification project introduced the new unified model: Group Chat, which is based on the previous Group model, and absorbs the Room model as well.

Change of invitation mechanism

When creating a new Group Chat, the workflow in the LINE app doesn't distinguish between Room or Group anymore. Instead, on the creation UI, you can choose whether they join the chat immediately or they can choose to accept/reject before joining.

Hint for existing chats

Sometimes users started a Room with several friends to discuss a specific topic, and after the discussion, the Room would never be used again while it remained in each Room member's chat list. Next time the same users wanted to start another conversation, they usually created a new Room instead of finding the previous conversation from their (already long enough) chat list. Idle Rooms with the same Room members accumulated, which made chat lists longer and longer. It led to a bad user experience, and it also cost more server resources.

With the new chat creation workflow, when you try to create a new chat with the same members as an existing chat, LINE will display a hint. So you can easily jump to it and start a new conversation.

All chats have full features now

Since the new chat model is based on the Group model, all new chats support full features now. And any new feature in the future could be applied to all chats after Chat Unification.

Future plan: Migrate existing Rooms to Group Chats

Currently, any chat created via a recent version of LINE is a Group Chat. If you're still using a version from before Chat Unification, the Groups you create will transparently become new Group Chats on the server-side. Our next goal is to migrate Rooms to the new model so that users can also use full features in them.

Conclusion

This project has been a long-term project to improve with Rooms and Groups over the years. In order to not cause stress for users by making sudden changes, we are trying to make it as comfortable as possible and avoid inconvenience.

As a result of this project, the percentage of chats generated by the same members was reduced from 15% (Rooms) to 0.78% (invitation-free Group chat).

In this project, we have been working on improving many parts not mentioned above. We will continue working every day to improve user convenience and build a better system. Thank you.