The Travel Search feature is slightly different for both flights and hotels. But by extracting common elements such as WorkTree and Listing Ingestor Lib, we can leverage coding done at one place in other places.
In the booking design, we saw how the EDA pattern helps us cleanly segregate various workflows. We use a persistent queue such as Kafka instead of channels, because we want resiliency of instances going down. The workflow can take a long time, and we don't want a bad customer experience, such as a missed booking, due to transient infrastructure blips.
In the next chapter, we will look at the deployment details of Golang applications.