It is incorrect to say Union Snap “reduces the speed of the pipeline”. Union Snap is one of the simplest and fastest Snaps.
Join Snap is also very fast if the input data stream is sorted. If not, Join Snap’s internal sorter sorts and stages all input data in local temp files until input data streams reach the end. That is why users may see it reducing the speed. However, it is one of the most widely-used Snaps with a high price performance. If all your input data is already in a database, of course, it would be faster to join it in the database.
If you need to do inner-join just two input data streams and one of them is less than approximately 100,000 Map objects, In-Memory Lookup Snap would be faster than Join Snap since it stages the right view input data in memory.
If you post why your team does not allow to use Join/Union Snaps and why they think Join/Union Snaps are slow in more details, it would be easier to help you find alternatives.