We will use Ravenbill, LLC and the domain ravenbill.com for the project.
We will be visualizing the application architecture using C4 model
Separate file: Context diagram
Separate file Containers diagram
if you’re working with more granular microservices, the component
diagrams are likely wasted effort, as the majority of the useful information
can be understood from the container diagram, with the microservice itself
containing minimum meaningful components.
Ashley Peacock
"Creating software diagrams with modern diagramming techniques"
TBD
Code changes so frequently that, if created manually, the code diagram would likely be
out of date within days or hours of it being written.
Ashley Peacock
"Creating software diagrams with modern diagramming techniques"
I will later include complex parts of code (Approval logic, Clearing logic, Fraught Protection, and some of the Periodic Tasks).
We will try to follow the process described in “Database Design for Mere Mortals” by Michael J Hernandez, 4th edition. Instead of interviews we will use C4 architectural diagrams and Mastercard transaction processing rules.
The purpose of the Ravenbill Database is to maintain data for the full credit line lifecycle.
The AWS serverless architecture will be used for backend implementation. Lambda’s, Queues and Notification services will be used as much as possible. Data will be kept in Dynamo DB and S3.
The Dynamo DB keeps the original data, Graph DB keeps a subset for the approval process and fraught protection. S3 keeps archives, statements, images, customization styles etc. I might find a usage for AWS RDS PostgreSQL (?).
React and AWS Amplify are used for Web. Authentication and Authorization are Cognito (we use a Cognito hook to embed some info into the JWT token). We use SNS to send notifications back to the user.
I will try to find a way to convert the React web app to an Android/IOs App.
AWS CDK v2 will be used to describe and for the stack - including the Amplify app and hosting.
The backend will follow DDD (including tactical patterns - Entities, Value Objects, Aggregates, Services, Domain Events). Most of the code will be in the Golang, some may be in Python.
I will be using AWS API Gateway to connect and authenticate calls to lambdas. I might come up with GraphQL, but currently, I do not possess the knowledge to build client parts.
Code will be kept in the github. I may find usage for github actions.