The whole process actually has a local name: "Acqua alta". It is nothing new, simply the intensity was noteworthy.
The straws that broke the camel's back were a confluence of a very strong storm and the shape of the Adriatic Sea. Taken individually, neither would have caused the 29 October 2018 event. The storm was associated with strong southerly winds (winds that blow from the south) that pushed waters northward along the eastern coast of Italy. By itself, this would have resulted in a storm surge that would have raised waters in the lagoon around Venice by 10, maybe 20 centimeters. Some flooding would have resulted if the storm surge coincided with astronomical high tide, but not the exceptionally high amount that was observed. Moreover, that would have been a coincidental fluke of an event.
What those winds did instead was to make the entire Adriatic Sea slosh longitudinally (east-to-west and back). This is called a seiche. Seiches are standing waves that occur in enclosed / semi-enclosed bodies of water. In addition to the Adriatic, seiches also occur in the Baltic (which occasionally floods St. Petersburg in a very similar manner to the flooding of Venice), the Great Lakes, and several other bodies of water. The Adriatic Sea seiche has a period of about 22 hours. The storm that preceded the 29 October 2018 flooding event lasted long enough to make the Adriatic seiche have a rather high amplitude and be rather long-lived.
The flooding occurred when the peak of this 22 hour period standing wave at Venice coincided with the peak of the short term (e.g., the 12.421 hour $M_2$ tidal component) astronomical tidal influences. Adding in the long term influences (annual and semiannual astronomical tides, subsidence, and sea level rise) made the 29 October 2018 flooding event not just exceptional but nearly record-breaking.