The bookmark service is a replacement and evolution of the favorite functionality of previous versions. The bookmark service provides support for bookmarking any content with a supporting IContentType plugin as well as bookmarking external content by URL.
All content that has a IContentType plugin enabled is automatically supported by the bookmarking service, meaning no further work needs to be done to allow community participants to bookmark the content. But you may not want to allow a certain (or any) content type to be bookmarked. In this case, an IContentType can opt out of bookmarking support using the IBookmarkableContentType. Through this interface a content type can prevent bookmarking of the content type by returning false in the CanBookmark() method. Likewise, if you want to limit bookmarking of a content type to certain situations, IBookmarkableContentType interface can be used to enforce those limits.
If an IContentType does not implement IBookmarkableContentType, the content can be bookmarked by all community participants.
Site content can be bookmarked using any of the APIs. These support creating, retrieving and deleting bookmarks, as well as checking that a particular piece of content can be bookmarked by the accessing user.
External content can also be bookmarked via the REST API. Bookmarks created this way use the ContentUrl to uniquely identify the content being bookmarked. For example, a user could bookmark an article on an external site using the URL of the article.