FCOPTS — Francisco Pontes
Download CV🇺🇸
HomeAboutSkills & ToolsProjectsJourneyBlogContact
Case Study

SDA Ceará: Modernizing the State's Agrarian Management

App + Web/Admin System for the State Agrarian Development Secretariat

Official Government of Ceará app that centralizes the systems of the State Agrarian Development Secretariat (SDA): demand and action indicators, technical tickets, agenda, messaging and surveys, unifying modules that used to run in isolation.

React NativeReact Native
PostgreSQLPostgreSQL
.NET.NET
C#C#
PHPPHP
DockerDocker
KubernetesKubernetes
GrafanaGrafana
PrometheusPrometheus
Aplicativo SDA Ceará em uso
Project typeMobile + Web/Admin App
RoleSystems Analyst
Idealized byGovernment of Ceará / SDA
StatusIn production
Duration1.8 years of continuous evolution
PlatformsiOS + Android + Web + Admin

SDA Ceará represents the module-by-module, zero-downtime modernization of a government system already in use, unifying indicators, tickets, agenda and surveys into a single app for the State Agrarian Development Secretariat's staff.

Context and Scope

SDA Ceará is the official app of the Government of Ceará's State Agrarian Development Secretariat, used by staff to track demand and action indicators (the IDA system), open and manage technical tickets, handle agenda and messaging, and answer surveys. The app also surfaces linked programs, such as Ceará Sem Fome and Projeto São José.

Modules centralized in the app

  • Demand and Action Indicators (IDA), with reports and dashboard
  • Technical and bureaucratic tickets via the Activity System
  • Agenda, messaging with history, and surveys (SDA)
  • Cross filters by entity, project, year and municipality
Filtro do módulo Ceará Sem Fome x Projetos

Cross-referencing data: Ceará Sem Fome x Projects, by region, gender and CadÚnico

Module-by-Module Migration and Modernization

As the Systems Analyst responsible for the product's evolution, I led the backend and frontend migration module by module: each screen was rewritten and validated without interrupting use by the Secretariat's staff, who already depended on the system daily.

API (.NET / C# / PHP)

Business rules for indicators, tickets and surveys.

Filters and reports

Cross queries by entity, project, year and municipality.

Mobile (React Native)

Unified experience for field and office staff.

Module migrated in production

The "Sistemas" module was rebuilt with dynamic filters by entity, project, year and municipality, letting staff cross-reference data from different agrarian initiatives without relying on external spreadsheets.

Filtro dinâmico por Entidade, Projeto, Ano e Município

Sistemas module: dynamic filter by entity, project, year and municipality

Architecture and Infrastructure

SDA Ceará isn't a niche app: it's used by staff across an entire State Secretariat, with access spikes concentrated around accountability periods and project tracking in every municipality of Ceará. That makes the infrastructure as critical as the product itself — the architecture was designed to scale horizontally, tolerate instance failures and allow frequent deploys without noticeable downtime.

Immutable containers

Each module (.NET, C# and legacy PHP) packaged into versioned Docker images, with reproducible builds independent of the developer's machine.

Orchestration and auto-scaling

Kubernetes with multiple replicas per service and a Horizontal Pod Autoscaler adjusting capacity by CPU/memory during statewide access spikes.

Data resilience

Primary PostgreSQL with a read replica, isolating heavy reporting load from transactional traffic and serving as a backup source.

Gradual rollout

A CI/CD pipeline ships new module versions via rolling update, letting the system evolve in production without stopping service to staff.

End-to-end observability

Prometheus scrapes metrics from every pod, Grafana exposes operational dashboards, and Alertmanager fires alerts before incidents reach end users.

Isolation between modules

Each domain (IDA, Activities/MAPP, Survey) runs as an independent service, so any module can scale, update or restart without affecting the others.

CI/CD — Docker image buildRegistry push and gradual cluster rolloutReact Native + WebStaff across all of CearáLoad BalancerTLSKUBERNETES CLUSTERIngress ControllerRoutes per module/domainIDA — .NET3 replicas · HPA 2–6Activities / MAPP — C#2 replicas · HPA 2–4Survey — PHP2 replicas (legacy)HPA rebalances replicas by CPU/memory during statewide traffic spikesPostgreSQL — PrimaryRead and writePostgreSQL — ReplicaRead replica and backupsPrometheusScrapes pod metricsGrafanaOperational dashboardsAlertmanagerIncident alerts

The result is infrastructure built for statewide scale: multi-replica services behind an Ingress Controller, a database with a read replica, and an observability stack that gives production visibility before an issue affects Secretariat staff in any municipality of Ceará.

Integrating Multiple Modules

Listagem do módulo MAPP com Dashboard MAPP

MAPP: tracking system with its own dashboard

Besides IDA, the app integrates MAPP (the tracking system) with its own dashboard, the Survey system and internal messaging. Each module keeps its own business logic but shares the same navigation shell and authentication, reducing the learning curve for staff.

Integration principles

  • Single authentication and navigation across all modules
  • A single ingress routes each domain to its own service, without coupling modules together
  • Each module migrated in isolation, with a simple rollback path
  • Reusable filters and reports across related modules
  • No interruption to staff usage during modernization

Project Impact

SDA Ceará now sustains over 1,000 active users and 200+ concurrent logins from staff across the State, with backend and frontend fully migrated module by module over 1.8 years, without ever interrupting the Secretariat's daily work — backed by Kubernetes infrastructure ready to scale as statewide demand grows.

The project reinforces that modernizing government systems in production requires both technical rigor and process discipline: every module has to evolve without breaking the trust of the people who already depend on it.

Trade-offs and what I'd do differently

What I chose not to build

  • A big-bang rewrite: I ruled out replacing the legacy system all at once. With 1,000+ users already depending on it daily, migrating module by module took longer (1.8 years) but never interrupted the Secretariat's operations.
  • Swapping the database mid-transition: I kept PostgreSQL as the source of truth instead of migrating databases partway through, to avoid stacking data risk onto a project that was already inherently risky.

What I'd do differently today

I'd introduce feature flags from the first migrated module, not partway through the project. Decoupling deploy from release would have given more room to test each new module with a small group of staff before rolling it out to the state's 200+ concurrent logins.

Key Challenges Faced

SDA Ceará was already used by government staff in production when I joined the project. That completely changed the nature of the work: it wasn't building from scratch, it was evolving a system in active use without interrupting the State's operation.

1Challenge

Migrating backend and frontend module by module, with zero downtime, serving 1,000+ active users

2Challenge

Sustaining 200+ concurrent logins with stability on orchestrated infrastructure

3Challenge

Unifying historically siloed systems (IDA, Survey, MAPP, Ceará Sem Fome) into a single app

Structural Technical Indicators

  • 1,000+ active users in production
  • 200+ concurrent logins supported
  • Backend and frontend migrated module by module, without stopping operations
  • Observability with Grafana and Prometheus
  • Container orchestration with Kubernetes

Tech Stack

React NativePostgreSQL.NETC#PHPDockerKubernetesGrafanaPrometheus

Liked it? Get in touch!

Send me a messageSee other projects
Handmade | © 2026 Francisco Pontes
Creative Commons BY-NC 4.0·Privacy·Hosted on Vercel·Check out my blog