Sorting is the only way, there are other options that you could explore, but not my knowledge all other ways such as order-independent transparency have too many other requirements to make them truly viable.
I use sorting in my particle engine too, for pretty much the same reasons.