digraph DruidDataFlow { graph [bgcolor="#fffef5", clusterrank=global, rankdir=TB]; node [color="#0a0701", fillcolor="#fdf4c6", fontname=Helvetica, shape=box, style=filled, label="\N"]; edge [color="#377d18"]; 1 [label = "REST query"]; 2 [label = "realtime_data_src"]; 4 [label = "indexed segments\nblob_store (S3, HDFS)"]; 5 [label = "Realtime.working_set"]; 6 [label = "Realtime.spill_disk"]; 7 [label = "HDFS_data_src"]; 8 [label = "external_data_src"]; 9 [label = "Realtime.local_disk"]; 10 [label = "metadata_store (mysql)"]; 11 [label = "HadoopDruidIndexer.working_set"]; 12 [label = "IndexerService.working_set"]; 2 -> 5 [label = "Realtime.Firehose"]; 5 -> 6 [label = "Realtime.Firehose"]; 5 -> 9 [label = "Realtime.Indexer"]; 6 -> 9 [label = "Realtime.Indexer"]; 5 -> 10 [label = "Realtime.MetadataUpdater"]; 7 -> 11 [label = "HadoopDruidIndexer"]; 11 -> 4 [label = "HadoopDruidIndexer"]; 11 -> 10 [label = "HadoopDruidIndexer"]; 8 -> 12 [label = "IndexerService"]; 12 -> 4 [label = "IndexerService"]; 12 -> 10 [label = "IndexerService"]; 9 -> 4 [label = "Realtime.segmentPusher"]; 5 -> 1 [label = " results "]; 1 -> 5 [label = " query "]; }