Architecture

@valter_s_matos
linkedin.com/in/valtermatos
github.com/ValterSantosMatos
Director Engineering at 8 Securities
Full Stack dev with +7 years of exp
Doing Node.js, ReactNative, GraphQl

About Me :)
The materials or other information, including text, graphic images or other items, provided in this presentation ("Information") are the properties of 8 Securities Limited [“8SL”], and are protected by applicable copyright law. The Information may not be copied, transmitted, disseminated, sold, distributed, published, broadcasted, circulated, stored for subsequent use or commercially exploited in any manner without the prior written consent of 8SL.
The information in this presentation is for information purposes only. It is believed to be reliable, but we do not warrant its completeness, timeliness or accuracy. User accesses, uses, and relies upon such content at user’s own risk. The information is not intended as an offer or solicitation for the purchase of any stock, any other security or any financial instrument or to provide any investment service or investment advice in any jurisdiction.
Disclaimer
Requirements for the BE
- Support the HK / JP / Crypto companies*
- DEV and PROD environments
1 min demo !





- NodeJs with Typescript
- Mono-repo
- Mental Model - Api/Model/Storage
- GraphQl and Rest
Architecture
Small full stack team
Use ReactNative (before Ionic)
Why NodeJs with Typescript
Basically we can use the same tooling :)
Easy to debug multiple micro-services
Less code duplication
Easy to do and review PRs
Why Mono-Repo
Easy to code share
Why GraphQl and Rest
GraphQl for everything except...
Auth / Login*
Some operation calls

API/MODEL/STORAGE
API
MODELS
STORAGE


BackEnd
Heavily inspired by Dan Schafer: https://www.youtube.com/watch?v=etax3aEe2dA
API Responsibilities
API
- Build the micro-services with the correct env
- Build the storage and model
- Authenticates the viewer* from the request (we use JWT tokens)
- Call the model with the viewer and inputs
Does not* :
1. Have business logic
MODELS Responsibilities
MODELS
- Authorization
- Get/Set data from/to storage
- Process it (business logic)
Does not* :
1. Know where the request came
2. Know about authentication
3. Know about where the data is stored
STORAGE Responsibilities
STORAGE
- Knows the outside world
- Gets/Stores data
- Has 2 types: global and transient
Does not* :
1. Have any business logic
DEMO TIME

Thank you !
@valter_s_matos
linkedin.com/in/valtermatos
github.com/ValterSantosMatos

Architecture at 8 Securities
By Valter Santos Matos
Architecture at 8 Securities
- 271