- Nomenclature -- after scalability --- Done
- Design poller for Listen to yourself - PUBLISH EVENTS TO NEW KAFKA TOPIC --- Done
- Check if cleanup happens properly --- Done
- Testing of ltu Poller --- Done
- Consume events by same order_Service to add data to orders table --- Done
- Check simultaneous consumption of events --- Done
- Idempotencty Solved - Consumer side --- Done
- Filter Orders using : Pattern_Type (Column) --- Done
- Create Routes in Database for tlt --- Done
- Deploy Container for Debezium --- Done
- Read WAL from Debezium along with filter (Transactional_Log_Tailing) --- Done
- Publish Events from Debezium --- Done
- Socket connection in Consumer for getting an event --- Done
- Socket connection with Order_Service --- Done
- UI --- Done
- Consumer --- Done
- Create a script to Restart and Install the project --- Done
- Poller logs on UI --- Done
#Command to restart containers chmod +x start_all_services.sh ./start_all_services.sh
Study deployment of Kafka
-
Kafka Topics - Orders_1___Transactional_Outbox_Pattern - Orders_2___Listen_To_Yourself_Pattern - Orders_3___Transactional_Log_Tailing
-
Order_Service_Producers Services - order_service_1-backend-1 - order_service_2-backend-1
-
Database - 1 Database in both services Container: postgres_outbox Tables - Order ( Pattern_Type - Transactional_Outbox , Listen_To_Yourself , Transactional_Log_Tailing) - Outbox_Transactional_Outbox - Outbox_Listen_To_yourself - ProcessedEvent (LTU IDEMPOTENCY)
- (Can get Schema from Prisma Studio)
-
Poller
- Transactional Outbox Pattern :
- poller_1_transactional_outbox-backend-1
- poller_2_transactional_outbox-backend-1
- Listen to Yourself Pattern :
- poller_1_listen_to_yourself-backend-1
- poller_2_listen_to_yourself-backend-1
- Transactional Outbox Pattern :
-
Debezium
- setup debezium
-
- add connector - curl -X POST http://localhost:8083/connectors -H "Content-Type: application/json" --data @register-postgres.json
- delete connector - curl -X DELETE http://localhost:8083/connectors/postgres-connector
- See all connectors - curl http://localhost:8083/connectors
-
- Done in Docker-compose.yml
Difference between DockerFile and dockercompose.yml Docker Network
Working of Kafka why brokers: ["kafka:29092"],
Start Commands PSQL
- New user : docker-compose up -d
- Start existing : docker start postgres_outbox
Order Service : docker-compose up --build
docker ps -a docker start container_name
docker-compose down --remove-orphans docker-compose build --no-cache docker-compose up
--- removes docker container docker compose down docker compose up -d --build
DATABASE : To see prisma tables
- npx prisma studio
- Kafka
- docker start kafka
- Database
- docker start postgres_outbox
-
Order Service docker start order_service_1-backend-1 docker start order_service_2-backend-1
-
Start the pollers docker start poller_1-backend-1 docker start poller_2-backend-2
- Database_Setup
- Kafka Setup
- Create topics in Kafka
- Order_Service setup
- Start Pollers