Skip to content

Commit 8980c62

Browse files
committed
docs(src/applications/inter-app-communication.md) Add first draft
Add first draft of inter-app communication. Apply changes requested by review.
1 parent 019b7af commit 8980c62

2 files changed

Lines changed: 8 additions & 0 deletions

File tree

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ pages:
4949
- Managing App Processes: applications/managing-app-processes.md
5050
- Managing App Configuration: applications/managing-app-configuration.md
5151
- Managing App Lifecycle: applications/managing-app-lifecycle.md
52+
- Inter-app Communication: applications/inter-app-communication.md
5253
- Resource Limits: applications/managing-resource-limits.md
5354
- Domains and Routing: applications/domains-and-routing.md
5455
- SSL Certificates: applications/ssl-certificates.md
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Inter-app Communication
2+
3+
A common architecture pattern of multi-process applications is to have one process serve public requests while having multiple other processes supporting the public one to, for example, perform actions on a schedule or process work items from a queue. To implement this system of apps in Deis Workflow, set up the apps to communicate using DNS resolution, as shown above, and hide the supporting processes from public view by removing them from the Deis Workflow router. See [Deis Blog: Private Applications on Workflow](https://deis.com/blog/2016/private-applications-on-deis-workflow/) for more details, which walks through an example of removing an app from the router.
4+
5+
### DNS Service Discovery
6+
7+
Deis Workflow supports deploying a single app composed of a system of processes. Each Deis Workflow app communicates on a single port, so communicating with another Workflow app means finding that app's address and port. All Workflow apps are mapped to port 80 externally, so finding its IP address is the only challenge. Workflow creates a [Kubernetes Service](https://kubernetes.io/docs/user-guide/services/) for each app, which effectively assigns a name and one cluster-internal IP address to an app. The DNS service running in the cluster adds and removes DNS records which point from the app name to its IP address as services are added and removed. Deis Workflow apps, then, can simply send requests to the domain name given to the service, which is "app-name.app-namespace".

0 commit comments

Comments
 (0)