Courier service was deprecated in
SAK-22053 in 2.9 but still is used by the chat tool. This backend should be replaced by some other service, possibly jGroups which is what the portal chat uses. Using the same back-end as portal chat might also make it easier for chat tool messages to be easily accessible from the portal chat dialog so you don't have to go directly into each sites tool! (Another feature perhaps)
Sometimes courier goes down and needs a restart to work again and it has other issue mentioned in that original ticket. I think there is the issue of having an abstraction layer instead (SAK-22359) but this feels a little less of a concern.
It might be better to do it at a higher level like MessageService (like this ticket mentioned) but I'm not sure about the implementation details. This will likely be a FARM project.