Suggestions for best approach/language for this scenario