diff --git a/docs/developer_guides/appendix_a_basic_components.md b/docs/developer_guides/appendix_a_basic_components.md
index 6e6eb3638f7cb6efebde8b1ad06e8f8becd14851..d64e2e0b6ca3d20692ff69e504f1da04fc3b61d3 100644
--- a/docs/developer_guides/appendix_a_basic_components.md
+++ b/docs/developer_guides/appendix_a_basic_components.md
@@ -70,111 +70,6 @@ etcd:
 
 
 
-#### A.3 Message Stream
-
-``` go
-type MsgType uint32
-const {
-  kInsert MsgType = 400
-  kDelete MsgType = 401
-  kSearch MsgType = 500
-  KSearchResult MsgType = 1000
-  
-  kSegStatistics MsgType = 1100
-  
-  kTimeTick MsgType = 1200
-  kTimeSync MsgType = 1201
-}
-
-type TsMsg interface {
-  SetTs(ts Timestamp)
-  BeginTs() Timestamp
-  EndTs() Timestamp
-  Type() MsgType
-  Marshal(*TsMsg) []byte
-  Unmarshal([]byte) *TsMsg
-}
-
-type MsgPack struct {
-  BeginTs Timestamp
-  EndTs Timestamp
-  Msgs []TsMsg
-}
-
-
-type MsgStream interface {
-  Produce(*MsgPack) error
-  Broadcast(*MsgPack) error
-  Consume() *MsgPack // message can be consumed exactly once
-}
-
-type RepackFunc(msgs []* TsMsg, hashKeys [][]int32) map[int32] *MsgPack
-
-type PulsarMsgStream struct {
-  client *pulsar.Client
-  repackFunc RepackFunc
-  producers []*pulsar.Producer
-  consumers []*pulsar.Consumer
-  unmarshal *UnmarshalDispatcher
-}
-
-func (ms *PulsarMsgStream) CreatePulsarProducers(topics []string)
-func (ms *PulsarMsgStream) CreatePulsarConsumers(subname string, topics []string, unmarshal *UnmarshalDispatcher)
-func (ms *PulsarMsgStream) SetRepackFunc(repackFunc RepackFunc)
-func (ms *PulsarMsgStream) Produce(msgs *MsgPack) error
-func (ms *PulsarMsgStream) Broadcast(msgs *MsgPack) error
-func (ms *PulsarMsgStream) Consume() (*MsgPack, error)
-func (ms *PulsarMsgStream) Start() error
-func (ms *PulsarMsgStream) Close() error
-
-func NewPulsarMsgStream(ctx context.Context, pulsarAddr string) *PulsarMsgStream
-
-
-type PulsarTtMsgStream struct {
-  client *pulsar.Client
-  repackFunc RepackFunc
-  producers []*pulsar.Producer
-  consumers []*pulsar.Consumer
-  unmarshal *UnmarshalDispatcher
-  inputBuf []*TsMsg
-  unsolvedBuf []*TsMsg
-  msgPacks []*MsgPack
-}
-
-func (ms *PulsarTtMsgStream) CreatePulsarProducers(topics []string)
-func (ms *PulsarTtMsgStream) CreatePulsarConsumers(subname string, topics []string, unmarshal *UnmarshalDispatcher)
-func (ms *PulsarTtMsgStream) SetRepackFunc(repackFunc RepackFunc)
-func (ms *PulsarTtMsgStream) Produce(msgs *MsgPack) error
-func (ms *PulsarTtMsgStream) Broadcast(msgs *MsgPack) error
-func (ms *PulsarTtMsgStream) Consume() *MsgPack //return messages in one time tick
-func (ms *PulsarTtMsgStream) Start() error
-func (ms *PulsarTtMsgStream) Close() error
-
-func NewPulsarTtMsgStream(ctx context.Context, pulsarAddr string) *PulsarTtMsgStream
-```
-
-
-
-```go
-type MarshalFunc func(*TsMsg) []byte
-type UnmarshalFunc func([]byte) *TsMsg
-
-
-type UnmarshalDispatcher struct {
-	tempMap map[ReqType]UnmarshalFunc 
-}
-
-func (dispatcher *MarshalDispatcher) Unmarshal([]byte) *TsMsg
-func (dispatcher *MarshalDispatcher) AddMsgTemplate(msgType MsgType, marshal MarshalFunc)
-func (dispatcher *MarshalDispatcher) addDefaultMsgTemplates()
-
-func NewUnmarshalDispatcher() *UnmarshalDispatcher
-```
-
-
-
-
-
 #### A.4 Time Ticked Flow Graph
 
 ###### A.4.1 Flow Graph States
diff --git a/docs/developer_guides/chap03_index_builder.md b/docs/developer_guides/chap03_index_builder.md
index b34243368110f85e92aa4f659609c300c3357b54..a3e7495330385a98ba41070f65ed5e0dc716462b 100644
--- a/docs/developer_guides/chap03_index_builder.md
+++ b/docs/developer_guides/chap03_index_builder.md
@@ -6,7 +6,7 @@
 
 #### 8.1 Overview
 
-
+<img src="./figs/index_service.jpeg" width=700>
 
 #### 8.2 API
 
diff --git a/docs/developer_guides/chap04_message_stream.md b/docs/developer_guides/chap04_message_stream.md
index 38db852f0aba982d8d4e0ab01c7695d14e42402f..19fefbd34410b731084e32c05129292e37905985 100644
--- a/docs/developer_guides/chap04_message_stream.md
+++ b/docs/developer_guides/chap04_message_stream.md
@@ -18,8 +18,6 @@ type Client interface {
 }
 ```
 
-
-
 * *CreateChannels*
 
 ```go
@@ -50,3 +48,109 @@ type ChannelDescriptions struct {
 }
 ```
 
+
+
+
+
+#### A.3 Message Stream
+
+``` go
+type MsgType uint32
+const {
+  kInsert MsgType = 400
+  kDelete MsgType = 401
+  kSearch MsgType = 500
+  KSearchResult MsgType = 1000
+  
+  kSegStatistics MsgType = 1100
+  
+  kTimeTick MsgType = 1200
+  kTimeSync MsgType = 1201
+}
+
+type TsMsg interface {
+  SetTs(ts Timestamp)
+  BeginTs() Timestamp
+  EndTs() Timestamp
+  Type() MsgType
+  Marshal(*TsMsg) []byte
+  Unmarshal([]byte) *TsMsg
+}
+
+type MsgPack struct {
+  BeginTs Timestamp
+  EndTs Timestamp
+  Msgs []TsMsg
+}
+
+
+type MsgStream interface {
+  Produce(*MsgPack) error
+  Broadcast(*MsgPack) error
+  Consume() *MsgPack // message can be consumed exactly once
+}
+
+type RepackFunc(msgs []* TsMsg, hashKeys [][]int32) map[int32] *MsgPack
+
+type PulsarMsgStream struct {
+  client *pulsar.Client
+  repackFunc RepackFunc
+  producers []*pulsar.Producer
+  consumers []*pulsar.Consumer
+  unmarshal *UnmarshalDispatcher
+}
+
+func (ms *PulsarMsgStream) CreatePulsarProducers(topics []string)
+func (ms *PulsarMsgStream) CreatePulsarConsumers(subname string, topics []string, unmarshal *UnmarshalDispatcher)
+func (ms *PulsarMsgStream) SetRepackFunc(repackFunc RepackFunc)
+func (ms *PulsarMsgStream) Produce(msgs *MsgPack) error
+func (ms *PulsarMsgStream) Broadcast(msgs *MsgPack) error
+func (ms *PulsarMsgStream) Consume() (*MsgPack, error)
+func (ms *PulsarMsgStream) Start() error
+func (ms *PulsarMsgStream) Close() error
+
+func NewPulsarMsgStream(ctx context.Context, pulsarAddr string) *PulsarMsgStream
+
+
+type PulsarTtMsgStream struct {
+  client *pulsar.Client
+  repackFunc RepackFunc
+  producers []*pulsar.Producer
+  consumers []*pulsar.Consumer
+  unmarshal *UnmarshalDispatcher
+  inputBuf []*TsMsg
+  unsolvedBuf []*TsMsg
+  msgPacks []*MsgPack
+}
+
+func (ms *PulsarTtMsgStream) CreatePulsarProducers(topics []string)
+func (ms *PulsarTtMsgStream) CreatePulsarConsumers(subname string, topics []string, unmarshal *UnmarshalDispatcher)
+func (ms *PulsarTtMsgStream) SetRepackFunc(repackFunc RepackFunc)
+func (ms *PulsarTtMsgStream) Produce(msgs *MsgPack) error
+func (ms *PulsarTtMsgStream) Broadcast(msgs *MsgPack) error
+func (ms *PulsarTtMsgStream) Consume() *MsgPack //return messages in one time tick
+func (ms *PulsarTtMsgStream) Start() error
+func (ms *PulsarTtMsgStream) Close() error
+
+func NewPulsarTtMsgStream(ctx context.Context, pulsarAddr string) *PulsarTtMsgStream
+```
+
+
+
+```go
+type MarshalFunc func(*TsMsg) []byte
+type UnmarshalFunc func([]byte) *TsMsg
+
+
+type UnmarshalDispatcher struct {
+	tempMap map[ReqType]UnmarshalFunc 
+}
+
+func (dispatcher *MarshalDispatcher) Unmarshal([]byte) *TsMsg
+func (dispatcher *MarshalDispatcher) AddMsgTemplate(msgType MsgType, marshal MarshalFunc)
+func (dispatcher *MarshalDispatcher) addDefaultMsgTemplates()
+
+func NewUnmarshalDispatcher() *UnmarshalDispatcher
+```
+
+
diff --git a/docs/developer_guides/chap05_proxy.md b/docs/developer_guides/chap05_proxy.md
index 29a0dec98bdf2b5e00bfc0237e3a375686ac507c..24ec12e94f5aa518708b97029ceccc1c39e7d486 100644
--- a/docs/developer_guides/chap05_proxy.md
+++ b/docs/developer_guides/chap05_proxy.md
@@ -2,6 +2,12 @@
 
 ## 6. Proxy
 
+
+
+<img src="./figs/proxy.jpeg" width=700>
+
+
+
 #### 6.0 Proxy Service API
 
 ```go
@@ -28,8 +34,6 @@ type Client interface {
 
 
 
-
-
 #### 6.1 Proxy Instance
 
 ```go
diff --git a/docs/developer_guides/chap06_master.md b/docs/developer_guides/chap06_master.md
index 30508b1f38fad14ce776a04a94578f0ac9a5d98a..28c3b599de0fa43baf893702b9341dfba2a75cc1 100644
--- a/docs/developer_guides/chap06_master.md
+++ b/docs/developer_guides/chap06_master.md
@@ -2,7 +2,8 @@
 
 ## 10. Master
 
-,
+<img src="./figs/master.jpeg" width=700>
+
 
 #### 10.1 API
 
@@ -28,8 +29,6 @@ type Client interface {
 
 
 
-
-
 #### 10.1 Interfaces (RPC)
 
 | RPC                | description                                                  |
diff --git a/docs/developer_guides/chap07_query_service.md b/docs/developer_guides/chap07_query_service.md
index d30e5e3d17e31da96ccdba250e3fd13b7b1bf5a0..52295480ab8070cc74a34538cf325147377c2dba 100644
--- a/docs/developer_guides/chap07_query_service.md
+++ b/docs/developer_guides/chap07_query_service.md
@@ -6,6 +6,8 @@
 
 #### 8.1 Overview
 
+<img src="./figs/query_service.jpeg" width=700>
+
 
 
 #### 8.2 API
@@ -120,6 +122,28 @@ type ReleasePartitionRequest struct {
 
 
 
+#### 8.2 Query Node
+
+```go
+type QueryNode interface {
+  Start() error
+  Close() error
+  
+  AddQueryStream(requestStream MsgStream, resultStream MsgStream) error
+  RemoveQueryStream(requestStreamID string) error
+  WatchDmStreams(insertStreams MsgStream) error
+  WatchDdStream(stream MsgStream) error
+  SetTimeTickStream(stream MsgStream) error
+  SetStatsStream(stream MsgStream) error
+  
+  LoadSegments(DbID UniqueID, CollID UniqueID, PartitionID UniqueID, SegIDs []UniqueID, FieldIDs []int64) error
+  ReleaseSegments(DbID UniqueID, CollID UniqueID, PartitionID UniqueID, SegIDs []UniqueID) error
+  DescribeParition(DbID UniqueID, CollID UniqueID, PartitionID UniqueID) (PartitionDescription, error)
+}
+```
+
+
+
 
 
 #### 8.2 Collection Replica
diff --git a/docs/developer_guides/chap09_data_service.md b/docs/developer_guides/chap09_data_service.md
index 2f1a2f3f2cb513d0daf3854a98146d7f3fa5b010..084ac5a003966619a461b12be2066393cb4d6295 100644
--- a/docs/developer_guides/chap09_data_service.md
+++ b/docs/developer_guides/chap09_data_service.md
@@ -6,6 +6,7 @@
 
 #### 8.1 Overview
 
+<img src="./figs/data_service.jpeg" width=700>
 
 
 #### 8.2 API
diff --git a/docs/developer_guides/figs/data_service.jpeg b/docs/developer_guides/figs/data_service.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8cc0dcd4b9fafa3717f5e1bf751bb839d1a5d74a
Binary files /dev/null and b/docs/developer_guides/figs/data_service.jpeg differ
diff --git a/docs/developer_guides/figs/index_service.jpeg b/docs/developer_guides/figs/index_service.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..ec428485490642c4c9f8f7582a4ff3bcd13dd071
Binary files /dev/null and b/docs/developer_guides/figs/index_service.jpeg differ
diff --git a/docs/developer_guides/figs/local_distributed_cloud.jpeg b/docs/developer_guides/figs/local_distributed_cloud.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..476921dc9c8feea33c8516f25b203a22c7b062c6
Binary files /dev/null and b/docs/developer_guides/figs/local_distributed_cloud.jpeg differ
diff --git a/docs/developer_guides/figs/master.jpeg b/docs/developer_guides/figs/master.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..00b0adc5e8a23b8f13247725ea867f9396ff738c
Binary files /dev/null and b/docs/developer_guides/figs/master.jpeg differ
diff --git a/docs/developer_guides/figs/proxy.jpeg b/docs/developer_guides/figs/proxy.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..724849228db00036c3ec6b9f3dbe04a6df511087
Binary files /dev/null and b/docs/developer_guides/figs/proxy.jpeg differ
diff --git a/docs/developer_guides/figs/query_service.jpeg b/docs/developer_guides/figs/query_service.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..8df1166e2d6a1509c8804dfcb12f59f1eec65a0a
Binary files /dev/null and b/docs/developer_guides/figs/query_service.jpeg differ