-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathecho-services-comunication
83 lines (83 loc) · 8.26 KB
/
echo-services-comunication
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<mxfile host="app.diagrams.net" modified="2021-03-23T17:22:20.993Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57" etag="4vnYntuBfVVt99Kzhe4v" version="14.5.0" type="github">
<diagram id="zEUb7owyeRIaAv8eoveD" name="Page-1">
<mxGraphModel dx="1704" dy="669" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="nEHEUE88KgoucmU8dEew-1" value="platform-api" style="swimlane;" vertex="1" parent="1">
<mxGeometry x="100" y="110" width="270" height="370" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-16" value="<b>POST /sms</b> -&gt; send sms to provider" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="nEHEUE88KgoucmU8dEew-1">
<mxGeometry x="10" y="37.5" width="100" height="55" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-17" value="<b>POST /campaigns</b>&nbsp;-&gt; create the campaign, states for each number of the campaign and&nbsp; send <b>CampaignCreated </b>event to messaging queue" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="nEHEUE88KgoucmU8dEew-1">
<mxGeometry x="130" y="37.5" width="120" height="132.5" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-42" value="<b>sms callback</b><br><br>Update based on the campaing id&nbsp; (from metadata) the state of the campaing + number" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#647687;strokeColor=#314354;fontColor=#ffffff;" vertex="1" parent="nEHEUE88KgoucmU8dEew-1">
<mxGeometry x="40" y="230" width="160" height="110" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-4" value="sms-queue-service" style="swimlane;" vertex="1" parent="1">
<mxGeometry x="650" y="270" width="350" height="270" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-23" value="<b>CampainCreated Consummer</b><br><br>enqueue the created campaign to be processed" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="nEHEUE88KgoucmU8dEew-4">
<mxGeometry x="20" y="140" width="120" height="110" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.51;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="nEHEUE88KgoucmU8dEew-5" target="nEHEUE88KgoucmU8dEew-23">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-5" value="RabbitMQ / AmazoneSQS / etc" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.queue_generic;pointerEvents=1;" vertex="1" parent="1">
<mxGeometry x="550" y="50" width="130" height="39" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#ffe6cc;strokeColor=#d79b00;" edge="1" parent="1" source="nEHEUE88KgoucmU8dEew-6" target="nEHEUE88KgoucmU8dEew-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-6" value="Bob" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="-110" y="120" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="nEHEUE88KgoucmU8dEew-8" target="nEHEUE88KgoucmU8dEew-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-8" value="Alice" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="-110" y="360" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-13" value="POST /campaigns" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="-50" y="340" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-14" value="POST /sms" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
<mxGeometry x="-50" y="170" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="nEHEUE88KgoucmU8dEew-17" target="nEHEUE88KgoucmU8dEew-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-21" value="<b>CampaignCreated</b><br><br>numbers<br>sendAt<br>campaingId" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffcd28;strokeColor=#d79b00;gradientColor=#ffa500;" vertex="1" parent="1">
<mxGeometry x="390" y="110" width="110" height="90" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-24" value="<b>CampaignCreated</b><br><br>numbers<br>sendAt<br>campaingId" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffcd28;strokeColor=#d79b00;gradientColor=#ffa500;" vertex="1" parent="1">
<mxGeometry x="690" y="140" width="116" height="90" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1.005;entryY=0.555;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="nEHEUE88KgoucmU8dEew-25" target="nEHEUE88KgoucmU8dEew-31">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1330" y="583" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-25" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="1300" y="340" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="nEHEUE88KgoucmU8dEew-23" target="nEHEUE88KgoucmU8dEew-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-27" value="<b>campaign job</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="1100" y="325" width="116" height="90" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-31" value="Cron job process campaign<br><br>process campaign jobs that were not processed already and schedule date is before the current time<br>This will be possible if we introduce the concept of scheduling (by a processAt in the job table, maybe??)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6d8764;strokeColor=#3A5431;fontColor=#ffffff;" vertex="1" parent="1">
<mxGeometry x="840" y="500" width="190" height="150" as="geometry" />
</mxCell>
<mxCell id="nEHEUE88KgoucmU8dEew-33" value="<b>campaign job</b>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="1100" y="520" width="116" height="90" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>