# Informações Adicionais

# Micro Serviços

# Fabio

[<span style="white-space: pre-wrap;">Fabio </span>](https://fabiolb.net/)<span style="white-space: pre-wrap;">é um </span>**proxy reverso HTTP(S) e TCP**<span style="white-space: pre-wrap;"> de alto desempenho, projetado para ser </span>**simples, rápido e moderno** <span style="white-space: pre-wrap;">com </span>**balanceamento de carga.**

<span style="white-space: pre-wrap;">Nos sistemas da Ema, o serviço de balanceamento de carga é executado sob o nome </span>`<span class="editor-theme-code">fabio.exe</span>`, integrado ao Consul e fundamental para a comunicação entre os micro serviços.

<span style="white-space: pre-wrap;">Ele foi criado para facilitar a </span>**implantação, atualização e refatoração de aplicações**<span style="white-space: pre-wrap;"> integradas ao </span>**Consul**, eliminando a necessidade de configurações manuais complexas.

#### Principais Características

- **Integração nativa com o Consul**: basta registrar os serviços e configurar health checks. O Fabio automaticamente descobre e roteia o tráfego.
- **Zero configuração**: não é necessário editar arquivos de configuração para adicionar ou remover serviços.
- **Balanceamento de carga inteligente**: distribui o tráfego entre os serviços de forma automática.
- **Alta performance**<span style="white-space: pre-wrap;">: comprovado em produção, processando mais de </span>**23.000 requisições/segundo**<span style="white-space: pre-wrap;"> desde 2015 sem falhas.</span>
- **Confiabilidade em escala**<span style="white-space: pre-wrap;">: utilizado em grandes sites, como o </span>**gumtree.com.au**, garantindo estabilidade e disponibilidade contínuas.

#### Benefícios

- Reduz complexidade de implantação de microsserviços.
- Escalabilidade sem esforço.
- Atualizações contínuas sem interrupções.
- Menos dependência de configuração manual, mais foco em desenvolvimento.

#### Por que "Fabio"?

De acordo com o desenvolvedor, o nome Fabio surgiu de maneira eventual e sem muitas pretenções:  
  
**Quando eu estava escrevendo Fabio, meu filho assistia "Procurando Nemo" quase todo dia e Dory continuava errando o nome de Nemo. Um dos nomes que ela o chamava era "Fábio". Daí o nome.**

#### Mantenedor

<span style="white-space: pre-wrap;">O Fabio foi desenvolvido e mantido por Frank Schröder até janeiro de 2020. Desde essa data, a manutenção primária tem sido responsabilidade da </span>[ENA](https://github.com/myENA)<span style="white-space: pre-wrap;"> e da grande comunidade de usuários.</span>

Ele foi originalmente desenvolvido no eBay Classifieds Group em Amsterdã, Holanda.

---

<span style="white-space: pre-wrap;">👉 Código-fonte e documentação completa: </span>[GitHub - fabiolb/fabio](https://github.com/fabiolb/fabio?utm_source=chatgpt.com)

# Requisitos Mínimos

# Requisitos Mínimos para Ema DOX

#### Sistemas Operacionais Homologados:

- **Windows 10 Pro**
- **Windows 11 Pro**
- **Windows Server 2019**<span style="white-space: pre-wrap;"> Standard ou Datacenter</span>
- **Windows Server 2022**<span style="white-space: pre-wrap;"> Standard ou Datacenter</span>

##### Configuração de Hardware Mínima

**Para até 2 usuários Estúdio e 100 usuários Portal:**

- **Processador:**<span style="white-space: pre-wrap;"> 4 CPUs</span>
- **Memória RAM:**<span style="white-space: pre-wrap;"> 16GB</span>
- **Disco:**<span style="white-space: pre-wrap;"> 240GB SSD</span>
- **Rede:**<span style="white-space: pre-wrap;"> Cabeada 1000Mbps</span>

#### ⚠️ Importante

**Não é recomendado o uso de rede sem fio (Wi-Fi)**<span style="white-space: pre-wrap;"> para uso do sistema Ema DOX Estúdio.</span>

---

#### Informações Técnicas Adicionais

##### Requisitos de Infraestrutura

- <span style="white-space: pre-wrap;">O sistema </span>**DOX Estúdio / DOX Portal**<span style="white-space: pre-wrap;"> só é compatível com </span>**sistema operacional Windows**
- O banco de dados do sistema geralmente está localizado no mesmo ambiente, porém ele pode ser instalado separadamente em um servidor com sistema operacional Windows ou ainda no Linux (sendo esta configuração realizada pelo próprio cliente, pois na Ema não damos suporte ao Linux)

##### Limitações Importantes

- <span style="white-space: pre-wrap;">O </span>**DOX só permite a inicialização de 1 (uma) conexão com o banco de dados por servidor**
- **Não é possível executar no mesmo sistema operacional mais de 1 (um) servidor de aplicação DOX**, conectando em bancos de dados distintos

# Requisitos Mínimos para Ema ERP/ERPx

### <span style="color: inherit;">Servidores - Requisitos por Quantidade de Usuários</span>

#### Sistemas Operacionais Homologados:

- **Windows 10 Pro 64 bits**
- **Windows 11 Pro 64 bits**
- **Windows Server 2019 (Standard ou Datacenter)**
- **Windows Server 2022 (Standard ou Datacenter)**
- **Windows Server 2025 (Standard ou Datacenter)**

#### Configuração de Hardware Mínima:

<table id="bkmrk-usu%C3%A1riosprocessadorr" style="box-sizing: border-box; border-width: 0px; border-style: solid; border-color: inherit; border-image: initial; margin: 0px 0px 2em; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); text-indent: 0px; border-collapse: collapse; table-layout: auto; width: 538px; font-size: 0.857143em; line-height: 1.5; color: oklch(0.37 0.013 285.805); font-family: Inter, "Inter Fallback"; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><colgroup><col></col><col></col><col></col><col></col><col></col></colgroup><tbody><tr style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><th style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0px 0px 0.666667em; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); color: oklch(0.21 0.006 285.885); vertical-align: bottom; font-weight: 600; text-align: start; padding-inline: 0px 1em;">Usuários

</th><th style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0px 0px 0.666667em; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); color: oklch(0.21 0.006 285.885); vertical-align: bottom; font-weight: 600; text-align: start; padding-inline: 1em;">Processador

</th><th style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0px 0px 0.666667em; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); color: oklch(0.21 0.006 285.885); vertical-align: bottom; font-weight: 600; text-align: start; padding-inline: 1em;">RAM

</th><th style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0px 0px 0.666667em; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); color: oklch(0.21 0.006 285.885); vertical-align: bottom; font-weight: 600; text-align: start; padding-inline: 1em;">Disco

</th><th style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0px 0px 0.666667em; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); color: oklch(0.21 0.006 285.885); vertical-align: bottom; font-weight: 600; text-align: start; padding-inline: 1em 0px;">Rede

</th></tr><tr style="box-sizing: border-box; border-width: 0px 0px 1px; border-style: solid; border-color: rgb(228, 228, 231) rgb(228, 228, 231) oklch(0.92 0.004 286.32); border-image: initial; margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 0px 1em;">**Até 2**

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">2 CPUs

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">8 GB

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">240 GB SSD

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em 0px;">Cabeada 1000 Mbps

</td></tr><tr style="box-sizing: border-box; border-width: 0px 0px 1px; border-style: solid; border-color: rgb(228, 228, 231) rgb(228, 228, 231) oklch(0.92 0.004 286.32); border-image: initial; margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 0px 1em;">**Até 5**

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">4 CPUs

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">16 GB

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">240 GB SSD

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em 0px;">Cabeada 1000 Mbps

</td></tr><tr style="box-sizing: border-box; border-width: 0px 0px 1px; border-style: solid; border-color: rgb(228, 228, 231) rgb(228, 228, 231) oklch(0.92 0.004 286.32); border-image: initial; margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 0px 1em;">**Até 10**

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">8 CPUs

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">16 GB

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">480 GB SSD

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em 0px;">Cabeada 1000 Mbps

</td></tr><tr style="box-sizing: border-box; border-width: 0px 0px 1px; border-style: solid; border-color: rgb(228, 228, 231) rgb(228, 228, 231) oklch(0.92 0.004 286.32); border-image: initial; margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 0px 1em;">**Até 15**

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">8 CPUs

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">24 GB

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">480 GB SSD

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em 0px;">Cabeada 1000 Mbps

</td></tr><tr style="box-sizing: border-box; border-width: 0px 0px 1px; border-style: solid; border-color: rgb(228, 228, 231) rgb(228, 228, 231) oklch(0.92 0.004 286.32); border-image: initial; margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 0px 1em;">**Até 20**

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">12 CPUs

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">32 GB

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">480 GB SSD

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em 0px;">Cabeada 1000 Mbps

</td></tr><tr style="box-sizing: border-box; border-width: 0px; border-style: solid; border-color: rgb(228, 228, 231) rgb(228, 228, 231) oklch(0.92 0.004 286.32); border-image: initial; margin: 0px; padding: 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5);"><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 0px 1em;">**Até 30**

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">16 CPUs

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">48 GB

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em;">1 TB SSD

</td><td style="box-sizing: border-box; border: 0px solid rgb(228, 228, 231); margin: 0px; padding: 0.666667em 0px; outline-color: oklab(0.210312 0.0016146 -0.00563596 / 0.5); vertical-align: baseline; text-align: start; padding-inline: 1em 0px;">Cabeada 1000 Mbps

</td></tr></tbody></table>

<span style="white-space: pre-wrap;">💡 </span><span style="color: oklch(0.21 0.006 285.885);">Esses requisitos foram dimensionados para uso do sistema com banco de dados PostgreSQL 16.</span>

### <span style="color: inherit;">Estações de Trabalho - Requisitos Mínimos</span>

#### Sistemas Operacionais Homologados:

- **Windows 10 Pro**
- **Windows 11 Pro**

#### Configuração de Hardware:

- **Processador:**<span style="white-space: pre-wrap;"> 4 CPUs</span>
- **Memória RAM:**<span style="white-space: pre-wrap;"> 8 GB</span>
- **Disco:**<span style="white-space: pre-wrap;"> 240 GB SSD</span>
- **Rede:**<span style="white-space: pre-wrap;"> Cabeada 1000 Mbps</span>

#### ⚠️ Importante

**Para um bom desempenho do sistema Ema ERP/ERPx, não é recomendado o uso de redes Wi-Fi**, tanto nas estações de trabalho quanto no servidor, especialmente quando o sistema é acessado via atalho pela rede local.

O uso de rede sem fio pode causar lentidão e prejudicar diretamente a experiência dos usuários.

<span style="color: rgb(82, 82, 91); white-space: pre-wrap;">A existência de diversos outros softwares instalados no mesmo servidor onde encontram-se os sistemas da Ema influenciam diretamente no desempenho e/ou na funcionalidade dos sistemas. </span>**O servidor deve ser preferencialmente dedicado aos sistemas da Ema**<span style="color: rgb(82, 82, 91);">.</span>

# Requisitos Mínimos para Ema PDV

#### Sistemas Operacionais Homologados

- **Windows 10 Pro**
- **Windows 11 Pro**

#### Configuração de Hardware Mínima

- **Processador:**<span style="white-space: pre-wrap;"> 4 CPUs</span>
- **Memória RAM:**<span style="white-space: pre-wrap;"> 8GB</span>
- **Disco:**<span style="white-space: pre-wrap;"> 240GB SSD</span>
- **Rede:**<span style="white-space: pre-wrap;"> Cabeada 1000Mbps</span>

#### ⚠️ Importante

**Não é recomendado o uso de rede sem fio (Wi-Fi)**<span style="white-space: pre-wrap;"> para uso do sistema.</span>

# Requisitos Mínimos para Ema SHOP

<span style="white-space: pre-wrap;">O aplicativo </span>**Ema SHOP**<span style="white-space: pre-wrap;"> está disponível nas lojas oficiais Android e iOS. Os requisitos mínimos para uma experiência consistente e satisfatória são:</span>

#### Compatibilidade de Versão

**Ema Software:**

- **Ema ERP deve estar atualizado com a versão 18.3 ou superior**

**Sistemas Operacionais:**

- **Android:**<span style="white-space: pre-wrap;"> Compatibilidade com versões Android 10 e versões mais recentes</span>
- **iOS:**<span style="white-space: pre-wrap;"> Compatibilidade com iOS 14 e versões mais recentes</span>

#### Armazenamento e Memória

- **8GB de memória geral**<span style="white-space: pre-wrap;"> (dependendo da quantidade de imagens cadastradas para os itens na base de dados)</span>
- **2GB de memória RAM**<span style="white-space: pre-wrap;"> disponível para a utilização do aplicativo</span>