You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: The Script.md
-54
Original file line number
Diff line number
Diff line change
@@ -9,60 +9,6 @@ Farmacy Food is a startup that aims to create tasty meals around peoples’ diet
9
9
10
10
# Presentation
11
11
12
-
# V2
13
-
14
-
_time 4:37 according to grammarly_
15
-
16
-
We are ArchColider and we are going to present the architecture for farmacy food.
17
-
18
-
Farmacy Food requires an ordering system that will connect users and ghost kitchens. Based on the goal, we identified business drivers that guide us through designing architecture.
19
-
20
-
Also, we have the following global assumptions about the IT landscape. We think that smart fridges and ghost kitchen systems already have API and can communicate with them without much work. Then the ghost kitchen operates during regular working hours, not 24 per 7. And finally, that dev team is small but experienced.
21
-
22
-
Requirements and assumptions lead us to constraint and scope, and more importantly, what is out of scope. No extensions or modification of smart fridges or ghost kitchen systems.
23
-
24
-
Significant architectural drivers usually make budget and architects SAD ‘cause it shows the amount of necessary work. Requirements traceability is key.
25
-
26
-
We remember about stakeholders, even about tech guys and food suppliers and what they care about
27
-
28
-
Moving to the solution. The domain area is sophisticated, and we decided to use domain-driven approach to handle complexity. Not all parts of the system equally important, so we need to know what we build or buy.
29
-
30
-
Conceptual map helps validate business scenarios and connections between entities. Rules connected to knowledge level proves that the system keeps its logical integrity.
31
-
Also, it helps to think about future possible business cases that do not exist now.
32
-
An example of a case for promotion campaigned based on meal type.
33
-
34
-
From the technical perspective, we offer modularized monolith, a set of them. The centers of functional gravity are Meal Catalog and Ordering modules.
35
-
36
-
To start thinking about the next architectural patterns, we need to identify quality attributes. Dominating the entire system will be Simplicity and Modifiability. Remember constraints?
37
-
38
-
However, every subsystem will have additional own essential quality attributes. It helps to pick patterns based on the specific needs of a subsystem.
39
-
40
-
We want to use command and events for communication between logical parts in monolith to address modifiability and extensibility. Doing so from the beginning, we ensure that extraction of module won’t be so painful as commands and events should flow as before.
41
-
42
-
If everything is done right – then extraction should be easy with communication and security checks in place
43
-
44
-
All decisions about extracting or scaling services are based on facts. Metrics trend analysis should be used as fitness functions.
45
-
46
-
Conceptual map and quality attribute mapping help a lot in deciding information flow.
47
-
48
-
Potentially risky situation with concurrent updates of available meals, but the catalog should keep data consistency
49
-
50
-
We propose to use the actor pattern because we have natural actors in life - fridges. A user always buys from a specific fridge, and a meal can’t magically jump from one fridge to another.
51
-
52
-
To avoid concurrency issues on the system level, we offer to use log-based streaming software.
53
-
Did someone tell Kafka?
54
-
55
-
Infrastructure view allows us to understand the cost of the solution. We suggest the first scale up - it will be cheaper and faster as the system's load is small at the beginning. And then use metrics to make decisions.
56
-
57
-
Solution support farmacy food accounts and the ability to use 3rd party providers.
58
-
59
-
Cost analysis might raise questions about the need for services. Still, ADRs should have answers or open discussions with owners about possible solutions.
60
-
61
-
Having a list of technical risks is good. Even better, have a list of business related risks. Because a variety of solutions is broad, and only the owner can decide how to handle risk.
62
-
63
-
The same with sensitive points. Review bombing is unanticipated but possible.
64
-
65
-
# v3
66
12
We are ArchColider and this is our architectural proposal for Farmacy Food.
67
13
68
14
Farmacy Food is in a need of an ordering system that will connect its users with ghost kitchens. Based on startup requirements, we identified business drivers that guided us through designing architecture.
0 commit comments