Pular para o conteúdo
02Case Study

Digital Application Architecture

Arquiteto de SoftwareReactive Web · Mobile · ODC · O11 · iOS · Android

Arquitetura de aplicações digitais enterprise para experiências Mobile e Reactive Web, integrando identidade, serviços corporativos, capacidades compartilhadas e ciclos de entrega.

Contexto

Aplicações digitais enterprise fazem parte de ecossistemas compostos por identidade, serviços corporativos, integrações, sistemas legados e diferentes canais digitais. Reactive Web e Mobile compartilham princípios arquiteturais, mas também possuem características próprias de execução, segurança e distribuição.

O desafio é permitir que aplicações e capacidades compartilhadas evoluam de forma sustentável sem criar dependências excessivas entre canais e sistemas corporativos.

Architecture Challenge

APPLICATION ARCHITECTURE

Domínios funcionais, responsabilidades e serviços de aplicação.

SHARED CAPABILITIES

Identidade, sessão, segurança, configuração e serviços reutilizáveis.

INTEGRATION ARCHITECTURE

APIs, serviços corporativos, sistemas legados e contratos claros.

REACTIVE WEB & MOBILE

Canais diferentes seguindo princípios arquiteturais consistentes.

MOBILE-SPECIFIC ARCHITECTURE

Offline, conectividade, capacidades do dispositivo e integrações nativas.

PLATFORM EVOLUTION

Arquitetura adaptada às capacidades e restrições do ODC e do O11.

Architecture Overview

A arquitetura estabelece fronteiras claras entre aplicações digitais, capacidades compartilhadas, integração e sistemas corporativos.

Reactive Web e Mobile compartilham serviços e princípios arquiteturais, enquanto cada aplicação mantém responsabilidades relacionadas aos seus domínios funcionais e às características da plataforma onde opera.

Aplicações Digitais
Reactive Web

Capacidades de Negócio · Domínios Funcionais · Lógica de Aplicação

Mobile

Capacidades de Negócio · Domínios Funcionais · Lógica de Aplicação

Capacidades Compartilhadas da Aplicação

Identidade · Sessão · Segurança · Configuração

Serviços Reutilizáveis · Lógica Compartilhada · Observabilidade

Camada de Integração

REST APIs · SOAP · Serviços Corporativos · APIs Externas

Contratos · Orquestração · Transformação · Tratamento de Erros

Sistemas Corporativos

Sistemas de Negócio · Plataformas Legadas · Serviços Corporativos · Dados Corporativos

Serviços Externos

Provedores de Identidade · Serviços de Terceiros · Plataformas Externas · Serviços Mobile

DIGITAL APPLICATIONS

Reactive Web e Mobile compartilham o mesmo ecossistema, organizando domínios e responsabilidades próprias.

SHARED CAPABILITIES

Atendem múltiplas aplicações quando possuem responsabilidades claras.

INTEGRATION LAYER

Protege as aplicações da complexidade de sistemas corporativos e legados.

ENTERPRISE ECOSYSTEM

Uma camada entre várias em um ecossistema mais amplo de serviços e dados.

Application Architecture

A arquitetura de uma aplicação digital deve refletir os domínios e responsabilidades da solução, e não apenas a estrutura técnica da plataforma utilizada para construí-la.

FUNCTIONAL BOUNDARIES

Funcionalidades do mesmo domínio devem permanecer próximas, com dependências controladas.

OWNERSHIP & RESPONSIBILITY

Regras, serviços e dados precisam ter ownership claro, em vez de serem distribuídos por conveniência de implementação.

REUSE WITH BOUNDARIES

Reutilização deve reduzir duplicação sem criar dependências difíceis de evoluir.

DATA & INTEGRATION BOUNDARIES

Aplicações devem conhecer apenas os dados e contratos de suas responsabilidades.

Reactive Web

Reactive Web segue os mesmos princípios de domínio e reutilização da arquitetura enterprise, distribuindo responsabilidades entre aplicação, capacidades compartilhadas e APIs corporativas, com evolução independente da solução.

Functional Domains · Application Services · Session & Identity · Shared Capabilities · API Consumption · Security Boundaries · Reusable Libraries · Data Ownership

Mobile-Specific Architecture

Aplicações mobile adicionam responsabilidades próprias porque o dispositivo passa a fazer parte do ambiente de execução — conectividade intermitente, persistência local, sincronização e segurança precisam ser consideradas desde o desenho da arquitetura.

01

Offline & Data Synchronization

Suportar operação offline não significa apenas armazenar dados localmente. A arquitetura precisa definir quais informações permanecem disponíveis no dispositivo, quais operações podem ocorrer sem conectividade e como alterações locais serão reconciliadas posteriormente com serviços remotos.

Initial Sync · Incremental Sync · Local Changes · Pending Operations · Conflict Handling · Retry · Idempotency · Recovery · Local / Remote Consistency

The solution needs to remain predictable even when the network is not.

02

Connectivity & Resilience

Disponibilidade de rede é uma condição variável: mudanças de conectividade, timeouts e falhas transitórias precisam produzir comportamentos controlados.

Network Status · Timeout · Retry · Pending Operations · Error Recovery · Graceful Degradation

03

Device Security & Local Storage

Persistir informações no dispositivo adiciona uma nova superfície de segurança. Dados locais precisam ser tratados de acordo com sua sensibilidade.

Local Data · Cache · Preferences · Session Data · Secure Storage

04

Push, Deep Links & Device Capabilities

Push notifications podem iniciar fluxos e direcionar o usuário para capacidades específicas; deep links permitem que canais externos façam o mesmo diretamente no aplicativo.

FCM · APNs · Push Tokens · Deep Links · Camera · Biometrics · Files · Location · Sharing · Permissions

05

Plugin & Native Integration Strategy

Plugins e frameworks como Cordova e Capacitor conectam a aplicação a APIs e funcionalidades nativas de iOS e Android, considerando compatibilidade, permissões e impacto no build. Regras de negócio devem permanecer desacopladas dessas dependências sempre que possível.

Plugins · Cordova · Capacitor · Native SDKs · Permissions · Platform Compatibility

06

Application Lifecycle

Aplicações mobile precisam considerar inicialização, foreground, background, retomada e encerramento pelo sistema — com sessão, sincronização e integrações nativas respondendo corretamente a cada mudança de estado.

Platform Architecture — ODC & O11

ODC e O11 possuem capacidades e restrições diferentes, mas os mesmos princípios arquiteturais permanecem consistentes entre plataformas.

OutSystems Developer Cloud

  • Application-oriented architecture
  • Libraries & shared capabilities
  • Cloud-managed runtime
  • Modern delivery model
  • External integrations & platform services

OutSystems 11

  • Modular application architecture
  • Reusable modules & shared services
  • Established enterprise runtime
  • Mature deployment lifecycle
  • External integrations & extensibility mechanisms

Different platforms. Consistent architectural principles.

Delivery Architecture

Reactive Web e Mobile possuem ciclos de entrega diferentes: aplicações web seguem publicação e promoção, enquanto mobile adiciona geração de pacotes, assinatura e distribuição pelas lojas.

Código-Fonte / Aplicação
Reactive Web

Build / Publish

Validação

Promoção

Produção

Mobile

Build Mobile

iOS

IPA

Assinatura

App Store

Android

AAB

Assinatura

Google Play

Lançamento / Atualização

No mobile, plugins, versões de Cordova ou Capacitor e assinatura também fazem parte do ciclo de entrega — uma mudança aparentemente limitada à aplicação pode exigir novo build nativo ou submissão às lojas.

Architecture Decisions

01

Organize by Domain, Not by Screen

DECISION

Organizar a solução por domínios funcionais e responsabilidades.

WHY

Domínios evoluem como capacidades de negócio, mantendo mudanças localizadas.

TRADE-OFF

Exige disciplina na definição de ownership.

02

Share Capabilities, Not Entire Applications

DECISION

Compartilhar capacidades coesas em vez de acoplar aplicações inteiras.

WHY

Reutilização precisa reduzir duplicação sem criar dependências estruturais.

TRADE-OFF

Contratos compartilhados exigem governança e compatibilidade.

03

Treat Offline as an Architectural Mode

DECISION

Tratar offline como um modo arquitetural explícito, não apenas cache.

WHY

Offline introduz estado local, sincronização, conflitos, retries e consistência.

TRADE-OFF

Aumenta complexidade; deve ser aplicado só onde agrega valor real.

04

Isolate Native Dependencies

DECISION

Isolar plugins, SDKs e integrações Cordova/Capacitor atrás de responsabilidades bem definidas.

WHY

Dependências nativas possuem ciclos de evolução diferentes da lógica funcional.

TRADE-OFF

Introduz abstração adicional, mas reduz impacto de substituições e incompatibilidades.

Trade-offs

Arquitetura não elimina trade-offs. Ela torna essas escolhas explícitas para que complexidade, autonomia e evolução possam ser administradas conscientemente.

ReuseAutonomy
Offline CapabilitySynchronization Complexity
Cross-PlatformNative Capabilities
StandardizationPlatform Flexibility

Technology Landscape

OutSystems Developer Cloud · OutSystems 11 · Reactive Web · Mobile · REST · SOAP · SQL · FCM · APNs · Cordova · Capacitor · iOS · Android · Offline Data Sync · Native Plugins

Considerações Finais

Arquitetura de aplicações digitais vai além da tecnologia usada para construir uma interface — envolve responsabilidades, domínios, dados, integrações e capacidades compartilhadas para que diferentes soluções evoluam de forma sustentável. Reactive Web e Mobile têm necessidades distintas, mas fazem parte do mesmo ecossistema arquitetural.