Why is there no serving layer for the speed layer in the lambda architecture?

288 views Asked by At

Nathan Marz uses the following picture for explaining the lambda architecture

Lambda Architecture Visualization by Marz

However, on the internet I often find the following architecture, in which the serving layer is not only the next step after the batch layer, but also the streaming layer, i.e.

DZone Example

From what I understand, I would argue, that Marz used his visualization to differ between the different requirements/properties of the used components, i.e. the batch layer has a lot of writes, while the serving layer needs to perform good at random reads only. The streaming component could be queried directly (i.e. by using an API), thus no additional database is required.

However, I also understand the visualization in which the serving layer combines both - the batch and the speed layer - since both expose some kind of view. So I do not understand why Marz did not add a streaming layer for the speed layer or used the merged serving layer as in the DZone example.

Could someone explain me, why there is no streaming layer for the Speed Layer in the Marz Architecture or why there is a streaming layer in the DZone example?

Thank you!

1

There are 1 answers

0
trevorism On

Both seem to be valid approaches. Mraz and DZone have proposed different abstractions for the same concept.