Skip to content

Latest commit

 

History

History
46 lines (37 loc) · 2.13 KB

README.md

File metadata and controls

46 lines (37 loc) · 2.13 KB

go-firestore-import

Import flow

Import flow with data validation

Common Architectures

Layer Architecture

  • Popular for web development

Layer Architecture

Hexagonal Architecture

  • Suitable for Import Flow

Hexagonal Architecture

Based on the flow, there are 4 main components (4 main ports):

  • Reader, Validator, Transformer, Writer
Reader

Reader Adapter Sample: File Reader. We provide 2 file reader adapters:

  • Delimiter (CSV format) File Reader
  • Fix Length File Reader
Validator
  • Validator Adapter Sample: Schema Validator
  • We provide the Schema validator based on GOLANG Tags
Transformer

We provide 2 transformer adapters

  • Delimiter Transformer (CSV)
  • Fix Length Transformer
Writer

We provide many writer adapters:

  • SQL Writer: to insert or update data

  • SQL Inserter: to insert data

  • SQL Updater: to update data

  • SQL Stream Writer: to insert or update data. When you write data, it keeps the data in the buffer, it does not write data. It just writes data when flush.

  • SQL Inserter: to insert data. When you write data, it keeps the data in the buffer, it does not write data. It just writes data when flush. Especially, we build 1 single SQL statement to improve the performance.

  • SQL Updater: to update data. When you write data, it keeps the data in the buffer, it does not write data. It just writes data when flush.

  • Firestore Writer: to insert or update data

  • Firestore Creator: to insert data

  • Firestore Updater: to update data

  • Firestore Stream Writer: to insert or update data. When you write data, it keeps the data in the buffer, it does not write data. It just writes data when flush.

  • Firestore Inserter: to insert data. When you write data, it keeps the data in the buffer, it does not write data. It just writes data when flush.

  • Firestore Updater: to update data. When you write data, it keeps the data in the buffer, it does not write data. It just writes data when flush.