Streaming de dados

Contexto

A cada evento processado na api de crédito é realizado uma atualização dos dados da projeção* deste evento no banco de leitura e, em seguida, é realizado o envio dela via Stream para o tópico de notificações contendo na mensagem o Label PublishDataStream.

Projeção( ou Projection ): É um padrão de projeto utilizado na api de Crédito que, em resumo, simboliza o estado de uma entidade naquele determinado instante.

861

Fluxo de publicação de dados

Contrato genérico

{
	"Stream": {
		"Content":[
			{
				"SchemaName": "MyTable",
				"SchemaVersion": 1,
				"DatasetName": "MyDataset",
				"Data": [
					{ "id": 1 },
					{ "id": 2 }
				]
			}
		]		
	}
}
CampoDescrição
StreamLista do conteúdo do fluxo de dados. Permite vários schemas ou conjuntos de dados em uma única mensagem.
Stream.ContentDefine o conjunto de dados e o esquema para o qual transmitir dados.
Stream.Content.DatasetNameString representando o nome do conjunto de dados que receberá os dados
Stream.Content.SchemaNameString representando o nome do esquema / tabela no datalake
Stream.Content.SchemaVersionInteiro representando a versão do esquema que está sendo transmitida
Stream.Content.DataLista de objetos para transmitir serializados no formato Json

Exemplo de stream com várias projections

{
    "Content": [
        {
            "Data": [
                {
                    "Name": "NITEROI RUGBY FOOTBALL CLUBE 72505662816752",
                    "FantasyName": "NITEROI RUGBY 72505662816752",
                    "AddressId": "jq292kuy4hesgqv4ukfbv7vmk",
                    "AffiliationKey": "7e04moldh5qtzwdy9vwbikchdgj8xtoz",
                    "CreationDate": "2020-07-14T16:14:37.5864828",
                    "AffiliationCode": "016207571",
                    "Status": "Active",
                    "Id": "jq292kux5yyt36mh3fw7x8dmh",
                    "Document": "72505662816752",
                    "LastUpdateDate": "2020-07-14T16:16:43.2911011Z",
                    "Email": "[email protected]",
                    "PhoneNumber": "21981340010",
                    "Version": 10,
                    "DocumentType": "CNPJ",
                    "StreamDate": "2020-07-14T16:16:45.875776Z"
                }
            ],
            "SchemaName": "borrower",
            "SchemaVersion": 1
        },
        {
            "Data": [
                {
                    "Id": "jq2923umgcgd9jv1vfjm12gdx",
                    "BankNumber": "13213",
                    "BankName": "Banco do Brasil S.A",
                    "BranchNumber": "346",
                    "BranchDigit": "0",
                    "AccountNumber": "666555",
                    "AccountDigit": "1",
                    "CreationDate": "0001-01-01T00:00:00",
                    "LastUpdateDate": null,
                    "Version": 0,
                    "LegalEntityName": "José da Sila Pereira",
                    "LegalEntityDocumentType": "CNPJ",
                    "LegalEntityDocumentNumber": "72505662816752",
                    "AccountType": 1,
                    "StreamDate": "2020-07-14T16:16:45.8757785Z"
                }
            ],
            "SchemaName": "bank-account",
            "SchemaVersion": 1
        },
        {
            "Data": [
                {
                    "CreationDate": "2020-07-14T16:15:12.0222159",
                    "BorrowerId": "jq292kux5yyt36mh3fw7x8dmh",
                    "LastUpdateDate": "2020-07-14T16:16:43.2911011Z",
                    "CancellationUserId": null,
                    "TotalPaidAmount": 0.00,
                    "MaximumDisbursementDate": "2020-07-15T00:00:00",
                    "ContractNumber": 1234,
                    "CreditAmount": 20000.00,
                    "ContractUri": "https://partnerservices8426-8080-default.mock.blazemeter.com/reportscustom/stone/imprimirccb2?code=21482a6b-13fc-4394-a708-6fbcc64f90de",
                    "DisbursementDate": "2020-07-14T16:15:26.3278172",
                    "CurrentDebtAmount": 20276.00,
                    "SignerId": "jq2935bxf56m1b515rcf3vt26",
                    "DueDate": "2021-04-14T00:00:00",
                    "LastCurrentDebtProcessingDate": "2020-07-14T16:15:26.7477103",
                    "Id": "jq2935bxf58cduszxwru8jq35",
                    "CancellationDate": null,
                    "LenderId": "FIDC",
                    "LenderName": "FIDC Stone",
                    "LenderDocument": "31847367000179",
                    "ProposalId": "jq292m1pnx7r8crf1xmwhkrut",
                    "TotalEffectiveCostRate": 4.540000,
                    "Status": "Active",
                    "RetentionRate": 6.000000,
                    "AnnualTotalEffectiveCostRate": 70.290000,
                    "CreditLineId": "jq29354prxhu34c9b6k16943x",
                    "TaxAmount": 300.68,
                    "OperationFeeAmount": 200.00,
                    "CancellationReason": null,
                    "BankAccountId": "jq29354prx8g34qxd3sn1z21z",
                    "FinancialInstitutionId": "BrasilMoneyPlusStaging",
                    "InterestRate": 3.990000,
                    "RepaymentStrategy": "BalanceRetention",
                    "RetentionCorrelationId": "d50346ae-dad1-47bb-86b5-c9f25550118a",
                    "Version": 10,
                    "LastRepaymentDate": null,
                    "SettlementDate": null,
                    "StreamDate": "2020-07-14T16:16:45.8757812Z"
                }
            ],
            "SchemaName": "loan",
            "SchemaVersion": 1
        },
        {
            "Data": [
                {
                    "Status": "Inactive",
                    "Id": "jq29354prxhu34c9b6k16943x",
                    "BorrowerId": "jq292kux5yyt36mh3fw7x8dmh",
                    "Tpv": 50000.00,
                    "AvailableCreditLimit": 30000.00,
                    "CreationDate": "2020-07-14T16:14:47.710834",
                    "FinancialInstitutionId": "BrasilMoneyPlusStaging",
                    "InterestRate": 3.990000,
                    "LastUpdateDate": "2020-07-14T16:16:43.2911011Z",
                    "CreditAnalisysId": null,
                    "TotalCreditLimit": 50000.00,
                    "Version": 10,
                    "MinMonthsToExpireContract": 9,
                    "MaxMonthsToExpireContract": 9,
                    "StreamDate": "2020-07-14T16:16:45.8757834Z"
                }
            ],
            "SchemaName": "creditline",
            "SchemaVersion": 1
        }
    ]
}

Esquemas das projeções das entidades de negócio

🚧

Projeção do Cliente

Veja a seção Projeção do Cliente em: Visão Geral do Cliente

🚧

Projeção do Endereço do Cliente

Veja a seção Projeção do Endereço do Cliente em: Visão Geral do Endereço do Cliente

🚧

Projeção da Conta Bancária

Veja a seção Projeção da Conta Bancária em: Visão Geral da Conta Bancária

🚧

Projeção da Linha de Crédito

Veja a seção Projeção da Linha de Crédito em: Visão Geral da Linha de Crédito

🚧

Projeção da Proposta

Veja a seção Projeção da Proposta em: Visão Geral da Proposta

🚧

Projeção do Empréstimo

Veja a seção Projeção da Empréstimo em: Visão Geral do Empréstimo

🚧

Projeção da Suspensão do Empréstimo

Visão Geral da Suspensão

🚧

Projeção do Reembolso

Veja a seção Projeção do Reembolso em: Visão Geral da Suspensão

🚧

Projeção da Ordem de Pagamento

Veja a seção Projeção da Ordem de Pagamento em: Visão Geral da Ordem de Pagamento

🚧

Projeção da Ordem de Pagamento - Boleto

Veja a seção Projeção do Boleto em: Visão Geral do Boleto

🚧

Projeção da Isenção de Juros

Veja a seção Projeção da Isenção de Juros em: Visão Geral da Isenção de juros