Definitely not. You can runLater it. This does lead to one of those geekery holes, though, where everyone on the team has to remember a rule. An approach I've used: Wrap the ObservableList, keeping it hidden from all clients that aren't the direct JavaFx observers of it. Now implement the parts of its API your code really needs on that wrapper. Very often, it's just two-three methods. Implement them using a thread-indifferent technique, like runLater. That way the team doesn't add to the large number of rules it has to remember to use the code.