The article is quite old, and after years of trial, improvement and failures we are now operating using the DOMA. As you confirmed one drawback is the join across domains!
We are leveraging databricks/spark to analyse, process and distribute the results when the datasets are massive. The latter could have a lag from couple of minutes to up to a couple of hours.
When we need to go down to the near real time, we do leverage kinesis streams or the above solution spawning a job-on-demand.
Ultimately everything is a tradeoff!
There is no "best pattern" as everything is based on your customer, your cashflow and the ability to negotiate with your stakeholders :
- how big the team Is?
- How much tech debt you can afford?
- How much ROI the feature is bringing back?
- How much would benefit would give you in the 6/12/36 months?
Everything is relative to the stage you're within your business, your team and most importantly your customers!