Breaking into 4 independent services means: Scale each based on actual need (crawler needs 10 instances, matcher needs 2) Test one piece at a time (ship faster, iterate publicly) Different tech ...
Going to the database repeatedly is slow and operations-heavy. Caching stores recent/frequent data in a faster layer (memory) ...