Skip to content

Commit 1c1337f

Browse files
authored
Add Refactor Community Doc (#906)
1 parent ffce6af commit 1c1337f

File tree

3 files changed

+100
-0
lines changed

3 files changed

+100
-0
lines changed

data-refactoring-advisor/hands-on-lab/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,9 @@ Oracle’s Graph Studio is a powerful tool designed to create, query, and analyz
4949
We create a notebook in Graph Studio for running Community Detection. A notebook is used to run queries against a graph.
5050

5151
[Run Community Detection with a Notebook](./community-detection/README.md)
52+
53+
## 6. Refactor Communities
54+
55+
Look at the communities found and determine if improvements can be made to bounded context scope
56+
57+
[Refactor Communties](./refactor-communities/README.md)
170 KB
Loading
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# Refactor Communities
2+
3+
These communities represent join activity based on your workload, your users. It is a beginning but there are areas for improvement. This is an exercise in defining plausible bounded contexts for microservice development. Before analyzing the communities found for the StudentFaculty Workload, lets briefly touch on what a `Pluggable Database PDB` is
4+
5+
![Vertex2](../images/cdb-pdb.png)
6+
7+
Oracle Database 23ai is a [Container Database](https://www.oracle.com/database/container-database/) which supports many instances of a [Pluggable Database](https://docs.oracle.com/en-us/iaas/base-database/doc/pluggable-databases.html)
8+
9+
In a microservices architecture, a pluggable database can be scoped to a Services Bounded Context. For example, the Supplier service, Customer Service and Order Service.
10+
11+
Or, in this case, the bounded contexts found through comminity detection.
12+
13+
## Communities Found
14+
15+
![Vertex2](../images/finalWeightedGraph.png)
16+
17+
There are 6 unique communities
18+
19+
### Blue Community
20+
- Colleges
21+
- Departments
22+
- Majors
23+
- StudentMajors
24+
25+
### Brown Community
26+
- Faculty
27+
- FacultyCourses
28+
- Courses
29+
- StudentCourses
30+
- Students
31+
32+
### Pink Community
33+
- Addresses
34+
- Transcripts
35+
- StudentFinances
36+
37+
### Red Community
38+
- Staff
39+
- Roles
40+
- Employee Benefits
41+
42+
### Green Community
43+
- Publications
44+
- FacultyCredentials
45+
46+
### Dark Blue Community
47+
- Committees
48+
- CommitteeMembers
49+
50+
51+
## REFACTORING OPTIONS
52+
53+
The Brown community seems broad, 5 tables, two of which are join tables. If I
54+
- moved Students and StudentCourses to the Pink Community
55+
- moved Faculty and FacultyCourses to the Red Community
56+
- moved Courses to the Blue Community
57+
58+
Then I would have 5 communities with a bounded contexts suitable for microservice development.
59+
60+
### Blue Community - Course Catalog
61+
- Colleges
62+
- Departments
63+
- Majors
64+
- StudentMajors
65+
- Courses
66+
67+
### Pink Community - Student Info
68+
- Addresses
69+
- Transcripts
70+
- StudentFinances
71+
- Students
72+
- StudentCourses
73+
74+
### Red Community - Faculty and Staff
75+
- Staff
76+
- Roles
77+
- Employee Benefits
78+
- Faculty
79+
- FacultyCourses
80+
81+
### Green Community - Faculty Achievements
82+
- Publications
83+
- FacultyCredentials
84+
85+
### Dark Blue Community - University Committees
86+
- Committees
87+
- CommitteeMembers
88+
89+
90+
These communities are starting to look like a bounded context for a microservices development team, one that would be responsible for all CRUD operations against these explicit table groupings.
91+
92+
And you may say, how can that be done? I would have to revisit my schema, create and load Pluggabe Databases, make sure these development teams have isolation. That's alot of work
93+
94+
Yes it is, unless you use [JSON Duality Views](https://blogs.oracle.com/database/post/json-relational-duality-app-dev). You could be doing microservice development against your SQL database same day.

0 commit comments

Comments
 (0)