Hello and welcome,
I think you should first try to read the ROS tutorials to get started with ROS.
Per se, ROS does not enforce any robotics component model. So you are free to choose whatever models suits you. There have been attempts in the past to provide models for nodes behavior[1]. Therefore the question 1 and 2 have little sense in the ROS framework (not that having a model is not interesting, it is just not what ROS provides).
The answer to question 3 is "no" (AFAIK).
[1] I am thinking here of driver_base but please do not learn ROS by trying to use this node first as it is not actively maintained