You can simulate the arrow entirely locally, if it's the kind that goes away after it's done firing (a k a "bullet arrow.")
How can the client predict this locally?
The trick is to show the results (hitpoints, particle systems, points, whatever) only after the server tells you what's happening.
Send your temporary ID to the server. The server then includes a "creator id and creator-specific temporary id" field with the entity create command. Other players don't need this data, but if you are the creator, you match it up.
how do you match up that entity with the one the server will create when it processes the player's "fire" command?