Skip to content

danpung2/Flowly

Repository files navigation

Flowly

🇰🇷 한국어

Smart Workflow Platform for Seamless Flow of Work

Flowly is an integrated collaboration tool that connects task management and real-time chat, where conversation seamlessly flows into work and records.


1. Project Overview

  • One-line Summary: A smart workflow project that experimented with technical expansion in large-scale environments through simulated traffic scenarios.
  • Core Values:
    • Integration of Information: Organically connects chat and tasks to preserve collaboration context.
    • Technical Challenge: Established a system architecture to handle simulated traffic targeting 150k DAU.
    • Intelligent Support: Provides knowledge-based answers through an AI Agent layer.

2. Infrastructure Evolution

Flowly records the process of identifying and overcoming technical limits in simulated traffic environments.

(1) Background & Situation

This project assumed a challenging environment with a target DAU of 150k. We continuously identified system limits through traffic-generator and evolved the infrastructure. The core goal was to achieve both high availability and cost efficiency within limited resources.

(2) Problem Definition & Constraints

  • CI/CD Scalability Limits: The initial Terraform user-data.sh approach caused bottlenecks in configuration management and automated deployment as infrastructure complexity increased.
  • Cost Efficiency Issues: Accumulated AWS cloud costs for simulation environments necessitated a transition to a more controllable home server-based On-Premise setup.
  • Operational Complexity: Nginx configurations directly on the host system lacked isolation, requiring manual work for every change—a major constraint during rapid development.

(3) Resolution Process

We went through 4 stages of optimization based on limits identified by traffic-generator.

  1. [Step 1] Initial Build (Terraform usage): Started with a single shell script build but identified its limitations in configuration management.
  2. [Step 2] Hybrid Automation (Terraform + Ansible): Separated infrastructure provisioning and server configuration to build a flexible cluster expansion and automated deployment system in AWS.
  3. [Step 3] Cost-Effective Infrastructure (On-Premise conversion): Migrated to a home server for cost optimization. Thanks to the pre-built Ansible scripts, we could migrate relatively easily while maintaining consistent infrastructure specifications across environments.
  4. [Step 4] Infrastructure Agility (Containerized Nginx): Switched to Docker container-based Nginx to solve configuration management inconveniences, securing version control for settings and deployment flexibility.

(4) Result

  • Infrastructure Flexibility: Built a high-availability architecture independent of the environment through abstraction with Ansible and Docker.
  • Cost Optimization: Secured a sustainable experimental environment by eliminating fixed infrastructure costs.

3. Product Description & Technical Details

Tech Stack

  • Backend:
    • Spring Boot (Kotlin): Secure user authentication and authorization utilizing Spring Security.
    • NestJS (Node.js/TS): High-concurrency core domain management (Todo, Chat, Friends) leveraging NodeJS's asynchronous non-blocking I/O.
    • AI Agent (Spring AI): RAG-based knowledge search and async worker layer.
  • Data Layer:
    • PostgreSQL (pgvector): Primary and vector data storage.
    • Redis: Session caching, AI Agent task queue, and real-time message broker.
  • Observability & Logging:
    • LogPilot, LogPilot-Lite: Self-built open-source based event streaming and centralized logging engine.
    • Prometheus & Grafana: Real-time system metric monitoring.

Architecture

graph TD
    User[User] -->|HTTPS| Nginx[Nginx Proxy]
    Nginx -->|/api/auth| Spring["Spring Boot<br/>(Auth/Security)"]
    Nginx -->|/api/todos, /api/chat| Nest["NestJS<br/>(Core Domain)"]
    Nginx -->|/| Next["Next.js<br/>(Web Client)"]

    subgraph "Data Layer"
        Nest --> Redis[(Redis)]
        Spring --> Redis
        Nest --> DB[(PostgreSQL)]
        Spring --> DB
    end

    subgraph "AI Agent Layer"
        Nest -->|Trigger| AI_API[AI API]
        AI_API -->|Job Queue| Redis
        Redis -->|Consume| AI_Worker[AI Worker]
        AI_Worker -->|Knowledge Search| DB
    end
Loading

4. Documentation

For detailed technical specifications and guides, please refer to the documents below.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published