There are two approaches you can take. One updates the original activity with a counter, another uses our analytics.
When you add an activity, if you send us a foreign id and timestamp, you can use that foreign id later to update the activity. Then, in the metadata of the activity you can have a field to count the likes and each like/unlike would update the activity. If you look at the Instragram-clone project I built in late 2016 you'll see an example of this in the Go backend code. The pros/cons of this approach: easy to manage yourself, but you need to send the entire activity as it was (same timestamp, and all other fields as you originally sent it) so you'll need to keep the data on your side as well. Also, if a user follows the feed where that activity is stored, they may not see the updated content as a new activity in the feed.
The feeds you'll need: https://getstream.io/blog/best-practices-for-instagram-style-feeds/
Backend code: https://getstream.io/blog/example-go-service-for-photo-sharing-app/
The second approach uses our analytics properties that can track this kind of metadata field in a different way, but the down side is that it's only available on our enterprise plans. You can look at our documentation page for information on how to use this.
Introduction: https://getstream.io/analytics/
Documentation: https://getstream.io/docs_analytics/#introduction