Closed vikhyat187 closed 11 months ago
The purpose of the design doc is to document all the decision decisions. So ideally I feel there should be these sections
good job breaking down the tasks though. 👍
The purpose of the design doc is to document all the decision decisions. So ideally I feel there should be these sections
- Problem/Context of the design doc
- Requirements (link the PRD if that exists)
- API Endpoints
- Data model
- Technology choices - All options we considered with pros and cons and why we chose what we chose
- A design diagram that shows all the components and their interactions.
Have made the changes to the doc @dev-gv.
Also list
done added @dev-gv.
Why updatedAt and createdAt both are numbers datatype, i think you are trying to store datetime stamp
don't we have string length (max char capacity) defined, if you are thinking to keep max, this will lead issues in future while you will have huge data and you will try to do some kind of optimisation
Why updatedAt and createdAt both are numbers datatype, i think you are trying to store datetime stamp
We have use epoch timestamp at other places, so using the same here.
don't we have string length (max char capacity) defined, if you are thinking to keep max, this will lead issues in future while you will have huge data and you will try to do some kind of optimisation
We have checked Dynamodb doesn't allow to set a max size for the attribute.
Problem:
Context:
Requirements
API Endpoints:
API contracts: https://github.com/Real-Dev-Squad/feature-flag-backend/blob/develop/openapi.yaml
/feature-flags
to get all the feature flags/feature-flags
to create a feature flag/feature-flags/{flagId}
to get the feature flag with Id/feature-flags/{flagId}
to update a feature flag/users/{userId}/feature-flags/{flagId}
get a feature flag details for a user/users/{userId}/feature-flags/
get all feature flag details for a user/users/{userId}/feature-flags/{flagId}
create a feature flag for a user/users/{userId}/feature-flags/{flagId}
update a feature flag for a userData Model
ER diagram: https://github.com/Real-Dev-Squad/feature-flag-backend/blob/develop/ER%20diagram.jpg
The database being choosed is DynamoDB
FeatureFlag
Partition Key = Id
Sort Key = createdAt (to sort based on creation time)
FeatureFlag-UserMapping
[RFC] The primary and sort key for
FF-User mapping table
to be finalisedPartition Key = flagId
Sort key = userId
Technology choices:
Assumptions
Scale being supported
Project board: https://github.com/orgs/Real-Dev-Squad/projects/23
Listing all the tasks which have to be done for feature flag implementation.
Feature flag
andFeature Flag User Mapping
) (1 day)healthcheck
and writing test for the same(1 day + 1-day buffer)/feature-flag
(3 days) API EndpointsFeature flag user mapping
(3 days + 1-day buffer)Have given the timings considering the average time (around 1.5 to 2hrs every day in RDS) The rough ETA considering the tasks would be around 8th may for all coding tasks and 12th may for go live date.