Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ /
Centro de Arquitetura Atlas
/ / /

Solução para acelerar a modernização de pagamentos

Aprenda a criar uma camada de dados operacional (Operational Data Layer, ODL) para liberar dados de pagamento isolados e melhorar os aplicativos modernos.

  • Casos de uso: Pagamentos, Modernização

  • Setores: Serviços financeiros

  • Produtos e ferramentas: MongoDB Atlas, Enterprise Advanced, Atlas Clusters, MongoDB Change Streams, Atlas Search, Atlas Charts, Atlas Auditoria e Segurança Empresarial, MongoDB Kafka Connector, Queryable Encryption, Time Series

  • Parceiros: Confluent (para integração com o Apache Kafka), AWS (para infraestrutura e serviços de nuvem)

O setor de pagamentos da atualidade muda rapidamente, e as empresas estão trabalhando para oferecer soluções de pagamento seguras e fáceis de usar. Essa necessidade é impulsionada por fatores como novas regulamentações, expectativas dos cliente e concorrência de mercado. As organizações de serviços financeiros podem usar o MongoDB para modernização de seus sistemas de pagamento.

Esta solução mostra como você pode usar o MongoDB para construir um ODL. Você pode implantar um ODL em sistemas legado para modernização de sua arquitetura sem a dificuldade e o risco de substituir totalmente os sistemas legado .

Diversos fatores estão impulsionando a modernização dos sistemas de pagamento:

  • Pagamentos em tempo real: clientes e empresas esperam que os pagamentos sejam processados imediatamente.

  • Mudanças normativas: novas normas e regulamentações, como o SSD2 na Europa, incentivam sistemas de pagamento mais abertos e flexíveis.

  • Expectativas do cliente: as pessoas querem que os processos de pagamento sejam suaves e integrados em diferentes plataformas.

  • Banco aberto: O banco aberto torna o setor financeiro mais comparativo e novo, permitindo o desenvolvimento de novos serviços de pagamento.

  • Concorrência: As startups de fimy oferecem novas soluções de pagamento, desabilitando as bancos e bancos tradicionais a atualizar seus sistemas.

Atualizar os sistemas de pagamento é desafiador devido a:

  • Sistemas complexos: Os sistemas de pagamento envolvem muitas partes e regulamentações diferentes, o que torna as alterações complicadas.

  • Tecnologia antiga: sistemas desatualizados desaceleram a tecnologia e dificultam o alcance dos padrões atuais.

  • Altos custos: fazer upgrade em sistemas antigos pode ser caro e demorado.

  • Dívida técnica: atalhos anteriores no design do sistema podem limitar o crescimento e a adaptabilidade no futuro.

Nesta solução de exemplo , você aprenderá como usar o MongoDB para atualizar os sistemas de pagamento.

As empresas estão adotando as seguintes estratégias ao atualizar seus sistemas:

  • Design orientado ao domínio: ao alinhavar o desenvolvimento do sistema com as necessidades de negócios, o design orientado ao domínio garante que as mudanças de tecnologia atendam aos objetivos de negócios.

  • Arquitetura de microsserviços: Ao fazer a transição de uma arquitetura monolítica para uma arquitetura de microsserviços, você pode atualizar e dimensionar seu sistema com mais eficiência.

As seguintes funcionalidades do MongoDB suportam os trabalhos de modernização de pagamentos:

  • Modelo de documento flexível: o modelo de documento do MongoDB permite incorporar novos tipos de pagamento e estruturas de dados, garantindo que seu sistema possa desenvolver-se com o mercado.

  • Camada de dados operacional: o MongoDB introduz uma camada de dados unificada que simplifica o acesso a dados em vários serviços, o que é crucial para a criação de soluções de pagamento integradas.

  • Suporte para as melhores práticas: o MongoDB fornece às empresas os FERRAMENTAS necessários para seguir as melhores práticas do setor, como transações seguras e análises em tempo real.

O diagrama abaixo detalha a arquitetura utilizada por esta solução de pagamento. Para saber mais sobre como funciona com MongoDB, visite nossa página Pagamentos em tempo real.

Diagrama da arquitetura da solução de pagamentos

Figura 1. Diagrama da arquitetura de solução de pagamentos

Esta solução se concentra nas relações entre entidades como contas de usuário, transações, contas bancárias e métodos de pagamento. Inclui atributos de dados e informações detalhadas para cada entidade.

Uma arquitetura de microsserviços divide grandes aplicativos monométricos em partes menores. Permite desenvolvimento mais rápido, modularidade, flexibilidade e escalabilidade, resiliência, alinhamento organizacional e redução de custos.

A arquitetura de microsserviços usada nesta solução é dividida nos seguintes serviços:

  • Gerenciamento de usuários

  • Processamento de transações

  • Histórico de transações

  • Reconciliação de conta

  • Verificação do pagamento

  • relatando

  • Notificações

Esse serviço facilita as interações do usuário e da conta. O diagrama abaixo mostra o fluxo para a criação de conta.

O diagrama envolve as seguintes entidades:

  • Entidades de dados: Conta de usuário, Método de pagamento, Conta bancária

  • Permissões: ler/gravar na conta do usuário, forma de pagamento e conta bancária

  • Entradas: Detalhes do usuário, Detalhes do método de pagamento, Detalhes da conta bancária

  • Saídas: Confirmação de criação de conta de usuário, confirmação de adição de método de pagamento, confirmação de adição de conta bancária

Fluxo de Criação de Conta

Figura 2. Fluxo de criação de conta

Você pode ver uma aplicação desse fluxo neste repositório do GitHub.

Esse serviço gerencia operações relacionadas a transações, como iniciar, concluir ou reembolsar uma transação. No diagrama abaixo, você pode visualizar o fluxo principal para iniciar uma transação.

Esse diagrama envolve as seguintes entidades:

  • Entidades de dados: Transação, Conta Bancária

  • Permissões: leitura/gravação em transação, leitura em conta bancária

  • Entradas: detalhes da transação, como valor, emissor e receptor

  • Saídas: atualização do status da transação, como pendente, concluída ou com falha

Você pode ver uma aplicação desse fluxo neste repositório do GitHub.

Fluxo de transação

Figura 3. Fluxo de transação

Esse microsserviço também é responsável por gerenciar transações de fornecedores externos. Por exemplo, a solução inclui uma demonstração de um usuário recebendo um pagamento do PayPal. O esquema flexível do MongoDB permite variação nos documentos que representam transações.

O diagrama abaixo mostra o processo para a transação do PayPal simulado.

Fluxo de transações externas

Figura 4. Fluxo de transação externa

Este serviço lida com registro e arquivamento de transações. Envolve as seguintes entidades:

  • Entidades de dados: histórico de transações, conta de usuário

  • Permissões: Leitura em Histórico de transações, Leitura em Conta do usuário

  • Entradas: Número da conta do usuário

  • Saídas: Dados do histórico de transações

Você pode ver um aplicação dessas entidades neste repositório do GitHub.

Este serviço verifica se os detalhes da conta estão atualizados. Envolve as seguintes entidades:

  • Entidades de dados: Conta Bancária, Transação

  • Permissões: Leitura/Gravação em Conta Bancária, Leitura em Transação

  • Entradas: Detalhes da transação, detalhes da conta bancária

  • Saídas: status de conciliação bancária, saldos ajustados das contas

Você pode ver um aplicação dessas entidades neste repositório do GitHub.

Este serviço processa o início de uma transação. O diagrama abaixo mostra as etapas de processamento de pagamentos, começando quando o serviço reage a um pagamento e terminando quando notifica o usuário se o pagamento foi aprovado ou rejeitado.

Este serviço envolve as seguintes entidades:

  • Entidades de dados: Transação, Conta de Usuário, Conta Bancária

  • Permissões: Leitura em Transação, Leitura em Conta de Usuário, Leitura em Conta Bancária

  • Entradas: Detalhes da transação, número da conta do usuário, detalhes da conta bancária

  • Saídas: Status da verificação (sucesso ou falha)

Fluxo de processamento de pagamentos

Figura 5. Fluxo de processamento de pagamento

Você pode ver um aplicação dessas entidades neste repositório do GitHub.

Para criar uma visualização dos seus dados de pagamento, você pode usar MongoDB Charts.

Isso envolve as seguintes entidades:

  • Entidades de dados: Histórico de Transações, Conta de Usuário

  • Permissões: Leitura em Histórico de transações, Leitura em Conta do usuário

  • Entradas: número da conta do usuário, critérios do relatório (período, tipo de transação)

  • Saídas: relatórios financeiros gerados

Esses serviços usam MongoDB Change Streams para notificar o usuário de quaisquer alterações.

Isso envolve as seguintes entidades:

  • Entidades de dados: Conta de Usuário, Transação

  • Permissões: leitura em conta de usuário, leitura em transação

  • Entradas: detalhes da conta do usuário, detalhes da transação

  • Saídas: notificações e alertas para os usuários

Você pode ver um aplicação dessas entidades neste repositório do GitHub.

Os seguintes microsserviços e as seguintes estruturas de documento são a base da solução de pagamento baseada no MongoDB, garantindo escalabilidade, segurança e gerenciamento eficiente de dados.

Os documentos na coleção users têm a seguinte estrutura:

{
"_id": ObjectId,
"username": String,
"email": String,
"password": String, // hashed
"linkedAccounts": [
{
"accountId": String,
"accountType": String,
"externalDetails": {
"apiEndpoint": String,
"accessKey": String,
"additionalInfo": String
}
}
], "recentTransactions": [
{
"transactionId": String,
"date": Date,
"amount": Number,
"type": String, // e.g., 'debit', 'credit'
"status": String // e.g., 'completed', 'pending'
}
]
}

Os documentos na coleção accounts têm a seguinte estrutura:

{
"_id": ObjectId,
"userId": ObjectId,
"accountNumber": String, // Encrypted
"accountType": String,
"balance": Number,
"limitations": {
"withdrawalLimit": Number,
"transferLimit": Number,
"otherLimitations": String
},
"securityTags": [String],
"encryptedDetails": String
}

Os documentos na coleção transactions têm a seguinte estrutura:

{
"_id": ObjectId,
"account_id": ObjectId,
"amount": Number,
"date": Date,
"type": String, // e.g., 'debit', 'credit'
"status": String, // e.g., 'completed', 'pending', 'refund'
"details": String, // Encrypted if sensitive
"referenceData": {
"sender": { ... },
"receiver": { ... },
"steps": [{ ... }],
"relatedTransactions": [{ ... }],
"notes": String,
"reportingTags": [String]
}
}

Os documentos na coleção notifications têm a seguinte estrutura:

{
"_id": ObjectId,
"relatedEntityId": ObjectId,
"userIds": [ObjectId],
"message": String,
"createdAt": Date,
"statuses": [
{
"userId": ObjectId,
"status": String // e.g., 'unread', 'read'
}
]
}

O código deste tutorial pode ser encontrado neste repositório do GitHub. Para começar, siga as README instruções do.

O tutorial utiliza os seguintes recursos nos diferentes serviços:

  • Indexação e escalabilidade

  • JSON schema validation

  • Permissão e segregação de dados

  • Auditoria

  • Fonte Apache Kafka: use o Kafka para transmitir notificações para sistemas e usuários externos.

  • Fluxos de alteração: os fluxos de alteração capturam notificações, que são enviadas por Websockets.

  • Atlas Charts: Utilize Atlas Charts para pré-processar e visualizar seus dados.

Se você usar esta solução, leve em conta as seguintes considerações:

  • Segurança e conformidade: cumpra o GDPR, o PCI DSS e outros regulamentos financeiros.

  • Escalabilidade e desempenho: garanta o processamento eficiente de queries e o tratamento de dados.

  • Auditoria e registro: registro abrangente de pagamentos para dar suporte às auditorias.

  • Backup e recuperação: plano robusto para recuperação de dados usando o MongoDB Atlas.

  • Pavel Duchovny, Relações com Desenvolvedores, MongoDB

  • Shiv Pullepu, Soluções para o Setor, MongoDB

  • Raj Jain, Arquiteto de Soluções, MongoDB

  • Jack Yallop, Marketing do Setor, MongoDB

Voltar

Interface unificada para aplicativos RAG

Nesta página