ivanildobarauna/data-producer-api

By ivanildobarauna

Updated almost 2 years ago

See more details: https://github.com/ivdatahub/data-producer-api

Image
Message queues
API management
Data science
0

309

ivanildobarauna/data-producer-api repository overview

Data Producer API: FastAPI application for sending data to Pub/Sub, used for load testing and triggering pipelines

Project Status Python Version License

Black pylint

CI-CD IMAGE-DEPLOY GCP-DEPLOY

Codecov

Development Stack

My Skills

Cloud Stack (GCP)

Cloud BuildArtifact RegistryCloud RunPub/Sub

  • Cloud Build: Continuous Integration and Continuous Deployment (CI/CD) service provided by GCP integrated with GitHub Actions
  • Artifact Registry: Private Docker container registry provided by GCP for storing FastAPI image.
  • Cloud Run: Fully managed serverless container runtime provided by GCP for running FastAPI Application.
  • Pub/Sub: Messaging service provided by GCP for sending and receiving messages between FastAPI and Dataflow pipeline.

Continuous Integration and Continuous Deployment (CI/CD, DevOps)

My Skills

Contributing

See the following docs:

Project Highlights:

  • Hexagonal Architecture: Adoption of Hexagonal Architecture to decouple the core logic from external dependencies, ensuring that any current data source can be replaced seamlessly in case of unavailability. This is facilitated by the use of adapters, which act as intermediaries between the core application and the external services.

  • Comprehensive Testing: Development of tests to ensure the quality and robustness of the code at various stages of the ETL process

  • Fire-Forget Messaging: Use of messaging (Cloud PubSub) in the fire-forget model to manage files generated between the transformation and loading stages, ensuring a continuous and efficient data flow.

  • Configuration Management: Use of a configuration module to manage project_id and others env variables, providing flexibility and ease of adjustment.

  • Continuous Integration and Continuous Deployment: Use of CI/CD pipelines to automate the build, test and deployment processes, ensuring that the application is always up-to-date and ready for use.

  • Code Quality: Use of code quality tools such as linters and formatters to ensure that the codebase is clean, consistent and easy to read.

  • Documentation: Creation of detailed documentation to facilitate the understanding and use of the application, including installation instructions, usage examples and troubleshooting guides.

API Documentation

Swagger UI

Tag summary

Content type

Image

Digest

sha256:59e9886a1

Size

247 MB

Last updated

almost 2 years ago

docker pull ivanildobarauna/data-producer-api