Activity Stream Customization via Protocol Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for delivering activity streams in social networking and messaging tools are limited by their reliance on predefined formats, making it difficult to customize the presentation of activity information and related actions, requiring manual changes to templates, data formats, and JavaScript classes.

Innovation Solution

A system and method for per-client, per-type customizations in activity streams, utilizing an extraction pipeline that converts activity information into type-specific protocol buffers based on client and activity types, allowing for dynamic processing and rendering of activity information on client devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a predefined and fixed format is used for sending and presenting activity information, then system simplicity is maintained, but customization capability is limited

Engineering Contradiction:
Improvecustomization capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments activity information into structured protocol buffers with distinct fields for activity type, client type, and presentation parameters. This segmentation enables selective customization of specific activity aspects while maintaining a standardized overall structure, resolving the contradiction between adaptability and complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses parameter-based customization where protocol buffers contain configurable fields that define presentation characteristics. By changing parameters within the standardized buffer structure, the system achieves diverse customization capabilities without fundamentally altering the core data format, thus maintaining system simplicity while enhancing adaptability.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If manual changes are made to presentation templates, data formats, and JavaScript classes for customization, then flexibility is achieved, but development time and complexity increase

Engineering Contradiction:
Improvepresentation flexibilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-defining protocol buffer structures and activity type classifications. This advance preparation enables rapid customization through configuration rather than manual coding, significantly reducing development time while maintaining presentation flexibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses template-based presentation where standardized protocol buffer formats serve as reusable copies. Once a presentation template is established for a particular activity type, it can be replicated and adapted for similar activities without recreating the entire presentation logic, thereby reducing development effort.

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If a single codebase supports multiple client types, then code reuse is improved, but handling client-specific customizations becomes more complex

Engineering Contradiction:
Improvecode reuseVSAvoidclient handling complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The system applies local quality by incorporating client-specific parameters within the standardized protocol buffer structure. Each client type can have customized fields or parameters localized to its specific needs while the overall buffer format remains consistent, enabling code reuse through standardization while accommodating client-specific requirements through localized parameter variations.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9385979B1Customizing posts by activity type and client type
Publication Date: 2016.07.05 GOOGLE LLC
  • US9385979B1 patent drawing
  • US9385979B1 patent drawing
  • US9385979B1 patent drawing

AI summary

A system and method for per-client, per-type customizations to posts in an activity stream comprises an extraction pipeline and a rendering pipeline. The extraction pipeline can include a library of embedded code, data type taxonomy and an embed converter. The data type taxonomy is coupled to an activity source to receive activity information, and to produce a first protocol buffer. The embed converter produces a type-specific protocol buffer from the first protocol buffer and embedded code based in part upon the type of activity and the type of client. The type-specific protocol buffer is provided to the client to process activity information or present activity information. The disclosure also includes a method for processing a post in an activity stream on a per-client, per-type basis.