Parse log referring the information from other services (redis, etc)

Is there any way to mutate the log stream or to add more fields using other information from other services?

Case 1: add field from redis.
Mr. A wants to add "user_name" information using the "login_id" in the log.
There is a redis key-value store that maps login_id to user_name.

Case 2: decrypt the encrypted field.
Mr. B wants to store the encrypted fields in the log as decrypted, plain text format.
There is secured ReSTful service that decrypts the encrypted message.

Both cases need to request another ReSTful service.
How can I do that in logstash script or plugin.
Is there any best-practice to resolve the cases?

Apart from the translate service which mutates field values based on a YAML file I believe you need to write a plugin. I haven't heard of a generic one for REST or Redis lookups.