Skip to main content

Application Architecture

Summary

Bugfender is a multi-service observability platform for collecting, processing, storing, and viewing application logs, sessions, devices, crashes, issues, network events, and user feedback.

The core product is implemented primarily in Go, with a React/Vite dashboard frontend. The architecture separates public SDK ingestion, asynchronous processing, dashboard APIs, scheduled maintenance jobs, platform-specific symbolication services, and mediated Kibana access.

Main Modules

  • SDKs and client libraries: platform SDKs and plugins that collect telemetry in customer applications and submit it to the ingestion API.
  • bugfender-web: dashboard backend, web routes, API routes, auth, billing, teams/apps/devices/logs/issues, integrations.
  • bugfender-log-server: public SDK ingestion API.
  • bugfender-log-processor: Kafka consumers for logs, issues, symbolication, and device events.
  • bugfender-cron: singleton scheduled maintenance and task processing service.
  • symbolication/{ios,android,web,flutter}: platform-specific symbolication services.
  • bugfender-web/frontend: React dashboard frontend.

SDKs and Client Libraries

The workspace contains SDKs, plugins, samples, and symbol-upload tooling for multiple platforms. These are part of the product architecture because they are the primary producers of telemetry consumed by bugfender-log-server.

Identified SDK/client repositories include:

  • Android: remote-logger-android/
  • iOS: remote-logger-ios/
  • JavaScript/Web: remote-logger-js/, bugfender-web-common/
  • Flutter: BugfenderSDK-Flutter/
  • React Native: rn-bugfender/
  • Capacitor: bugfender-capacitor/
  • Cordova: cordova-plugin-bugfender/
  • Unity: BugfenderSDK-Unity/
  • .NET MAUI: bugfender-maui/
  • Go: bugfender-sdk-go/

Sample applications exist for Angular, React, Vue, JavaScript, Flutter, and other platforms.

Core Storage

  • MariaDB: primary relational database.
  • Elasticsearch: searchable logs, issues, network data, audit/search analytics.
  • Redis: cache, rate limiting, quota state, coordination.
  • Kafka: ingestion-to-processing queue.
  • S3-compatible storage: symbols, geolocation artifacts, exports, and backups.

Deployment Models

Repository evidence indicates that Bugfender is operated as a hosted SaaS platform and also has deployment material for dedicated or customer-controlled environments. The hosted deployment model is represented by Kubernetes/Helm assets and environment values. Dedicated/on-premises-style deployment support is represented by Docker Compose/on-premises assets and DR/infrastructure automation.

The exact current production split between shared SaaS, dedicated customer environments, and on-premises deployments requires manual business/operations confirmation.

Deployment Context

The repository includes Kubernetes/Helm deployment assets, Docker Compose/on-premises deployment assets, and a dedicated DR/infrastructure automation repository using Ansible, Terraform, Kubernetes manifests