Git Product home page Git Product logo

test_09.03.2024's Introduction

ЗАДАЧА

    • Развернуть сервис на Golang, Postgres, Clickhouse, Nats (альтернатива kafka), Redis
    • Описать модели данных и миграций
    • В миграциях Postgres
      • Проставить primary-key и индексы на указанные поля
      • При добавлении записи в таблицу устанавливать приоритет как макс приоритет в таблице +1. Приоритеты начинаются с 1
      • При накатке миграций добавить одну запись в Projects таблицу по умолчанию
      1. id = serial
      2. name = Первая запись
    • Реализовать CRUD методы на GET-POST-PATCH-DELETE данных в таблице GOODS в Postgres
    • При редактировании данных в Postgres ставить блокировку на чтение записи и оборачивать все в транзакцию. Валидируем поля при редактировании.
    • При редактировании данных в GOODS инвалидируем данные в REDIS
    • Если записи нет (проверяем на PATCH-DELETE), выдаем ошибку (статус 404)
    1. code = 3
    2. message = “errors.good.notFound“
    3. details = {}
    • При GET запросе данных из Postgres кешировать данные в Redis на минуту. Пытаемся получить данные сперва из Redis, если их нет, идем в БД и кладем их в REDIS
    • При добавлении, редактировании или удалении записи в Postgres писать лог в Clickhouse через очередь Nats (альтернатива kafka). Логи писать пачками в Clickhouse
    • При обращении в БД использовать чистый SQL

МИГРАЦИИ POSTGRES

  1. Синий цвет - primary key
  2. * - индекс параметры
  3. C - создание
  4. U - обновление
  5. R - обязательное поле или нет при редактировании

PROJECTS GOODS MIGRATION CLICKHOUSE

REST Методы

good/create good/create good/create good/create good/create

test_09.03.2024's People

Contributors

oooiik avatar

Watchers

 avatar

test_09.03.2024's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.