https://twitter.com/isotopp/status/1270824610469208072
is a summary of:
[WayBack] Thread by @isotopp: Are you a Developer and understand (Micro-) Services? I am a database person and a bit simple, and I have a genuine Question: When moving to…
Are you a Developer and understand (Micro-) Services? I am a database person and a bit simple, and I have a genuine Question:
When moving to a services architecture, where do the JOINs go?
So you sell stuff, that is you have an orders table o, with an oid, which stores a customer id cid from a customers c table, and an article id aid, from an articles table and a count cnt.customer 17 ordered 3 45’s:
? SELECT cnt
> FROM o JOIN c ON o.cid = c.cid
> AND o.aid = a.aid
> WHERE c.cid = 17;= 3When moving to services, because you are multibillion dollar enterprise, your customers, orders and articles can no longer fit into a single database, and there are other reasons to have an OrderService, CustomerService and ArticleService.You still want to ask something (OrderService?) about the number of 45’s that 17 ordered.
Who do you ask? What does this do to connect the dots? How do you do reporting (“Show me all top 10 articles by country, zipcode digit 1 by week over the last 52w”)?
Do you reimplement join algorithms by hand in application code? Are there supporting tools? Do you reimplement data warehousing aggregations, too?If so, what tooling for reporting does exist, and how does that compare to eg existing tooling for data warehousing?
Some of the reactions on Twitter are below
–jeroen