By reading @abin's answer in What is the difference between Sink and Stream in Flutter?, I have understood the relation btw Sink and Stream. Other than that, What are the relationships btw BehaviorSubject, BehaviorSubject.add, StreamController, BehaviorSubject.stream or maybe with Sink? I have no idea if there are any relationships btw BehaviorSubject and Sink. Maybe these two have no relationship at all? In the Google I/O 2018 video, it basically just uses BehaviorSubject.add and BehaviorSubject.stream for the output. Thanks.