proactive vs reactive patterns