Skip to content
Ahsan Mehmood
All work

Convsync · Full-Stack Engineer · Feb 2024 – Dec 2024

Reporting Performance Overhaul

Moved reporting workloads to PostgreSQL and Redis as part of a microservices modernization, cutting dashboard load time from 12s to under 2s.

12s → <2sDashboard load time

Problem

Reporting dashboards took around 12 seconds to load, while the wider legacy application was being modernized into microservices.

My role

As a Full-Stack Engineer, migrated the reporting workloads and built REST APIs for the modernized services, along with React dashboards, auth and CI/CD.

Architecture

Reporting Performance Overhaul architectureReact 18 dashboards and an Angular frontend call REST APIs built with Spring WebFlux and .NET 6 microservices, secured with JWT, OAuth 2.0 and role-based access control. Reporting workloads were migrated from the legacy application to PostgreSQL with Redis.Microservices · Clean ArchitectureReact 18 dashboardsTypeScript · TailwindAngular frontendSpring WebFlux servicesREST APIs.NET 6 servicesREST APIsAuthJWT / OAuth 2.0 · RBACRedishot report dataPostgreSQLreporting workloadsLegacy applicationmodernized
React and Angular front ends call Spring WebFlux and .NET 6 services. Reporting reads come from PostgreSQL with a Redis cache in front.

Key technical decisions

  • Dedicated reporting store

    Reporting workloads were migrated to PostgreSQL, separating them from the legacy application.

  • Cache in front of reports

    Redis serves frequently requested report data, which together with the migration brought dashboard loads from 12s to under 2s.

  • Incremental modernization

    The legacy application was split into Spring Boot and .NET Core microservices with Clean Architecture, exposing REST APIs with Spring WebFlux and .NET 6.

  • Secure by default

    JWT/OAuth 2.0 and role-based access control across the services, with GitHub Actions CI/CD and automated tests in JUnit and xUnit.

Results

  • Dashboard load time cut from 12s to under 2s.
  • Improved maintainability and deployment efficiency after the move to microservices.

Stack

  • PostgreSQL
  • Redis
  • .NET 6
  • Spring WebFlux
  • React 18
  • TypeScript
  • Tailwind CSS
  • Angular
  • GitHub Actions