ref _ https://private.tistory.com/24
Transaction = ?
synchronous: Two or more tasks do and wait for each other
asynchronous: They give their result when each has been done
blocking: Wait until something given task has done
non-blocking: vice versa