Engage /attract
I would say they are more often not interchangeable..
Simplifying a little bit, the primary meaning of these words are:
1. attract - draw someone's interest, i.e. make them pay attention or come to it.
2. engage - keep someone involved in a topic or in an activity, by arousing interest or some other means.
(I think "engage" implies a more lasting effect, while "attract" is a phenomenon which may or may not last)
So we can say a book signing event can attract people (make people get interested and come to it), while a speaker might engage people by telling an interesting story (or "tell an engaging story"). We are less likely to say the event is engaging people (at least not before it starts), or someone's story is attracting or attractive.
A case of interchangeable usage might be "He has an engaging/attractive personality" ("attracting" wouldn't work as well though).