Skip to content

Commit

Permalink
Separate badges from tags RFC and added rfc/ (#4)
Browse files Browse the repository at this point in the history
* started writing rfc and added dir

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* made small change on README and added more to RFC will create PR to get number now

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* more content to Badges rfc

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* renamed file

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* almost done with doc

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* added more context

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* added Marcos's suggestion

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* Update 004-feature-template.md (#6)

typos

Signed-off-by: Paul-Armand Verhaegen <paularmand.verhaegen@gmail.com>
Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* Updated RFC based on implementation

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* doc: add code owner file (#7)

Signed-off-by: feng-tao <fengtao04@gmail.com>
Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* updated

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* oops

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

* deleted duplicate

Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>

Co-authored-by: Paul-Armand Verhaegen <paularmand.verhaegen@gmail.com>
Co-authored-by: Tao Feng <fengtao04@gmail.com>
Signed-off-by: Allison Suarez Miranda <asuarezmiranda@lyft.com>
  • Loading branch information
3 people committed Feb 23, 2021
1 parent 332b784 commit a91879d
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions rfcs/001-support-badge-as-entity.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
- Feature Name: badges_node
- Start Date: 2020-08-24
- RFC PR: [amundsen-io/rfcs#4](https://github.com/amundsen-io/rfcs/pull/4)
- Amundsen Issue: [amundsen-io/amundsen#0000](https://github.com/amundsen-io/amundsen/issues/599)

# Separate badges from tags

## Summary

There is a need to create a new entity for Badges that is separate from Tag in the metadata service. Badges in Amundsen are components which in the past have been used to indicate different bits of metadata like explaining if a resource was a table view or if a user was no longer active in amundsen (alumni). Tags were also simple bits of information consisting of a name that were used to filter resources when searching, so it made sense to combine them at the time.

Moving forward we want to use badges to indicate the status of a table resource (alpha, beta GA, deprecated), whether we recommend using a certain resource, as well as using them to indicate if a column in a table is a primary key, partition column, or deprecarted.

## Motivation

In order to best use badges we want to add category field to the entity to help decide things like the presentation of the badge (placement) and how to prioritize resources based on what badges they have. This makes the Tag and Badge entities different, as Badge requires more information now and will be used in a very different way from Tag. Separating the two now will likely lead to less tech debt in the future when other features are implemented that impact the way we ingest and use badges. Additionally, this change will help clarify the difference in use and purpose between tags and badges throughtout Amundsen. This feature will also guarantee badges are not ingested without having a category.


## Guide-level Explanation (aka Product Details)

A badge is a predetermined indicator which can be added by a table owner in order to offer information about the status of a table resource (alpha, beta GA, deprecated), whether they recommend using a certain resource, or to indicate if a column in a table is a primary key or partition column.
Using badges to boost results in searches and to filter resources when searching will help Amundsen users find the resources they need easier, as well as help them discern which resources are most trustworthy.

## Reference-level Explanation (aka Technical Details)

The implementation will require:
- Add methods to the metadata service API to add, remove and, get badges as currently the service uses the methods for tags.
- Update badge ingestion docs to reflect new API call and parameters.
- Make updates to search, databuilder and frontend service to add functionality to use Badge instead of Tag.
- Handle old badges:
- Migration code to move all Tags with type “badge” to Badge nodes with the requested ‘category’.

## Drawbacks

- Takes more effort and time to implement than the alternative of keeping them together.
- Duplicate code for some functionality between BadgeAPI and TagAPI.

## Alternatives

- Keep the current functionality and simply add optional category to Tag.

## Unresolved questions

- Do we plan to add more attributes for badge later (category)?

## Future possibilities

- Deprecate any functionality relying on the prior implementation of badges.

0 comments on commit a91879d

Please sign in to comment.