Enrichment

Enrichment of Collection Entries

Objects stored inside collections can be embedded inside activities or user objects. This allows you to integrate with Stream without building a complex integration with another database. Stream’s collections can be used as your data source for data enrichment.

// first we add our object to the food collection
CollectionData cheeseBurger = client.collections().add("food", new CollectionData("123")
    .set("name", "Cheese Burger")
    .set("ingredients", Lists.newArrayList("cheese", "burger", "bread", "lettuce", "tomato"))).join();

// the object returned by .add can be embedded directly inside of an activity
userFeed.addActivity(Activity.builder()
    .actor(createUserReference("john-doe"))
    .verb("grill")
    .object(createCollectionReference(cheeseBurger.getCollection(), cheeseBurger.getID()))
    .build()).join();

// if we now read the feed, the activity we just added will include the entire full object
userFeed.getEnrichedActivities();

// we can then update the object and Stream will propagate the change to all activities
client.collections().update(cheeseBurger.getCollection(), cheeseBurger
    .set("name", "Amazing Cheese Burger")
    .set("ingredients", Lists.newArrayList("cheese", "burger", "bread", "lettuce", "tomato"))).join();
© Getstream.io, Inc. All Rights Reserved.