

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Integrar a KPL com o código de produtor
<a name="kinesis-kpl-integration"></a>

A Amazon Kinesis Producer Library (KPL) é executada em um processo separado e se comunica com o processo principal do usuário usando IPC. Essa arquitetura, às vezes chamada de [microsserviço](http://en.wikipedia.org/wiki/Microservices), é escolhida por dois motivos principais:

**1) O processo do usuário não falhará mesmo que a KPL falhe**  
O processo pode ter tarefas não relacionadas ao Kinesis Data Streams e continuar em operação mesmo que a KPL falhe. Além disso, o processo de usuário pai pode reiniciar a KPL e recuperar um estado totalmente funcional (essa funcionalidade está nos wrappers oficiais).

Um exemplo é um servidor Web que envia métricas ao Kinesis Data Streams. O servidor pode continuar entregando páginas mesmo que a parte do Kinesis Data Streams tenha parado de funcionar. Portanto, causar uma falha em todo o servidor devido a um erro na KPL seria uma interrupção desnecessária.

**2) Clientes arbitrários podem ser aceitos**  
Há sempre clientes que usam linguagens diferentes das oficialmente aceitas. Esses clientes também devem ser capazes de usar a KPL facilmente.

## Matriz de uso recomendado
<a name="kinesis-kpl-integration-usage"></a>

A matriz de uso a seguir lista as configurações recomendadas para diferentes usuários e indica se e como a KPL deve ser usada. Lembre-se de que, se a agregação estiver habilitada, será preciso usar a desagregação para extrair seus registros no lado do consumidor. 


| Linguagem do lado do produtor | Linguagem do lado do consumidor | Versão da KCL | Lógica do ponto de verificação | A KPL pode ser usada? | Advertências | 
| --- | --- | --- | --- | --- | --- | 
| Tudo menos Java | \* | \* | \* | Não | N/D | 
| Java | Java | Usa o Java SDK diretamente | N/D | Sim | Se a agregação for usada, será necessário usar a biblioteca de desagregação fornecida após as chamadas a GetRecords. | 
| Java | Tudo menos Java | Usa o SDK diretamente | N/D | Sim | É preciso desabilitar a agregação.  | 
| Java | Java | 1.3.x | N/D | Sim | É preciso desabilitar a agregação. | 
| Java | Java  | 1.4.x | Chama o ponto de verificação sem nenhum argumento | Sim | Nenhum | 
| Java | Java | 1.4.x | Chama o ponto de verificação com um número sequencial explícito | Sim | Desative a agregação ou altere o código para usar números sequenciais estendidos para definir pontos de verificação. | 
| Java | Tudo menos Java  | 1.3.x \+ daemon de várias linguagens \+ wrapper específico de linguagem | N/D | Sim | É preciso desabilitar a agregação.  | 