This project is a simple backend API implementation using Golang to support fast search on large datasets utilising Meilisearch. In the development of this API, several design patterns are applied, including the CQRS Pattern, CDC Pattern, Background Worker Pattern, and scheduled data synchronisation between Meilisearch and Postgres. It is hoped that this tutorial can provide benefits and solutions for those of you who are facing challenges in managing large amounts of data. The concepts presented are highly suitable for applications such as online stores, travel applications, retail, and similar systems.
- CQRS Pattern
- Background worker processing
- Background scheduler processing
- CDC Pattern
- Concurrency pattern: Worker Pool & Pipeline
- Fullstack Monorepo setup
- Message broker authorization + Dead letter queue
- Live reload for Golang development
- Docker monorepo setup
- Melilisearch setup
- Backoff locking with Redis
- Clean architecture setup for complex projects
-
make upb; make up
make down
-
make dev | make worker | make cron
make dev | make worker | make cron
make build
-
cd apps/be/database; make mig-up
cd apps/be/database; make seed-up