📄️ Architecture
Owlistic uses a traditional client-server design, with a dedicated database for data persistence. On top of that, it leverages an event streaming system to push real-time updates to clients. Clients communicate with backend services over HTTP using REST APIs and listen over a websocket connection for server events. Below is a high level diagram of the architecture.
📄️ Server
Owlistic backend is built using Go, a statically typed, compiled language. The main reason for choosing Go is its strong support for concurrency and efficient memory management, which are crucial for event-driven systems. It also uses the PostgreSQL database for data persistence and Apache Kafka as an event streaming system to push real-time updates to clients.
📄️ App
Design
📄️ Repository Structure
Directory Structure
📄️ Setup
Follow the steps below to set up your development environment.