Rebuilding the Groups Experience on LinkedIn


Groups backend

As illustrated in the diagram above, the Groups team previously built and maintained its own data stores, services, platforms, and code for all Groups functionality across pillars. Now, by integrating with other platforms on LinkedIn, the team only manages Groups-specific business logic within those platforms. This reduces our operational costs while allowing us to benefit from the evolution of those platforms.

Better separation of concerns
With this architecture, we were able to reduce the number of services owned by the Groups team from nine—spread across 52 software codebases—to three. Out of the three, two are brand new microservices for Groups metadata and membership. We were able to do all this while creating a cleaner separation of concerns, one of our guiding principles.

This translated into big productivity wins for the team. Onboarding new engineers became easier because they did not have to learn about legacy systems that were disorganized and hard to understand. From an operational perspective, the Groups team only owns and maintains services and data stores unique to the Groups use case (Groups metadata and membership). All other infrastructure is maintained by the respective platform teams. For example, while the Groups team owns the business logic for how to decorate a group post, we are able to leverage the Content Experience team’s expertise in maintaining and improving the content ecosystem at large.

Technology upgrades
We took this opportunity to upgrade to the latest LinkedIn technologies. We have been able to move to the latest dependency injection systems and do away with outdated libraries. Our data stores for Groups data are moving from Oracle to Espresso, which has been standardized within LinkedIn. This enables us to scale more effectively.

Feed integration

Due to our previously diverged architecture, Groups always had to play catch up for any new features introduced in the LinkedIn feed. For example, members could share videos on the feed but not in Groups without the Groups team building and maintaining the identical functionality. With the redesign, we were able to vastly improve the member experience by integrating with the LinkedIn feed’s tech stack. Here are some benefits we were able to realize as part of this integration:

Consistent user experience between the LinkedIn feed and Groups
The new Groups feed experience offers the full gamut of feed functionality out of the box and will continue to do so with little or no effort for upcoming features. Group members on mobile and web will get to post and consume all of the rich content supported by the main feed. Groups users can now post videos, post multi-photo updates, edit their posts, and reply to comments. Going forward, new features you see on the main LinkedIn feed will appear in Groups too, providing a consistent product experience to our members.

Distribution in the LinkedIn feed
Previously, Groups content (posts, likes, and comments) had a different backend service and data store than the main feed content. Both of these lived in their own silos, with limited interaction. While a post within the Groups UI was served by the Groups backend, distributing that same post within the LinkedIn feed was more complex. It required us to maintain Groups-specific logic across the core LinkedIn stack to handle Groups posts differently. We replicated social gestures (likes/comments) between the Groups and feed ecosystems. This system was fragile and prone to data synchronization issues, often causing inconsistent experiences for our members.

With the redesign, Groups content leverages the singular content platform and store that serves the main feed content. This has simplified the data synchronization complexities and we’ve been able to deprecate Groups-specific code branches that arose from the siloed architecture. This integration with the content platform enabled the LinkedIn feed’s AI to start surfacing relevant updates from your favorite groups in the main feed.

Content quality
Eliminating spam and low-quality content is something that has always been a goal for Groups team. Although we have previously built several solutions to combat this issue, we have never been able to easily leverage technology advancements in this area across LinkedIn due to our fragmented architecture.

With the current architecture, Groups is now able to leverage the same spam and low-quality classifiers that help keep our LinkedIn feed relevant and professional using the Universal Content Filtering (UCF) platform. This architecture allows us to benefit from any future improvements made in this domain with little to no effort.

Notifications integration

Previously, Groups notifications were produced and sent in a silo, unaware of any other notifications the member was receiving from LinkedIn. Email was the primary channel for notifications. This led to members dissatisfaction with excessive and non timely notifications.

In the past few years, LinkedIn has made huge improvements in our notifications platform to put members first. Concourse adds richer targeting and relevance to notifications and ATC does intelligent channel selection and delivery time optimization, etc.

The new Groups product leverages this notifications platform to deliver a consistent experience across LinkedIn by sending relevant and timely notifications. Content creators can now focus solely on getting their message out and not be distracted by how it’s delivered. They can rely on the platform to deliver it to members via a channel that’s most optimal for them (push, in-app, email).  

App consolidation

The Groups product did not previously have a well-integrated mobile app experience. We had a standalone iOS app and a web offering that were separate from the main LinkedIn app. This led the Groups experience to feel isolated from the rest of a member’s LinkedIn experience, violating our “integrated experience” principle. In order to unify the product experiences for our members, we rebuilt the Groups product across all platforms within the core LinkedIn mobile apps and website.



Source link