Audit
Este repositório apresenta a implementação de um sistema de auditoria de dados, desenvolvido para demonstrar de forma prática a aplicação de um mecanismo de CDC (Change Data Capture).
Install / Use
/learn @Waelson/AuditREADME
Solução de Auditoria Baseada em CDC
Este repositório contém a implementação de um sistema de auditoria de dados utilizando a técnica de Change Data Capture (CDC). O objetivo é capturar e registrar alterações realizadas em bancos de dados relacionais de forma transparente para a aplicação, oferecendo uma solução prática para auditoria e rastreamento de eventos.
Motivação
Sistemas onde a rastreabilidade de dados é essencial, como ambientes financeiros, e-commerce, ou qualquer aplicação sujeita a regulamentações, a auditoria de alterações nos dados é uma necessidade crítica. Este projeto demonstra como o CDC pode ser integrado a uma arquitetura moderna para capturar, armazenar e consultar eventos de forma estruturada.
Arquitetura

Componentes
| Componente | Descrição | |------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| | Payment UI | Interface gráfica (frontend) que permite ao usuário iniciar pagamentos. | | Payment API | Serviço de backend responsável por processar e registrar transações no banco de dados PostgreSQL. | | PostgreSQL | Banco de dados utilizado para armazenar os registros das transações. | | Debezium Connector | Plataforma de Change Data Capture (CDC) que monitora o PostgreSQL por meio de seus arquivos WAL (Write-Ahead Logs) para capturar mudanças. | | Kafka Cluster | Sistema de mensageria que recebe as alterações capturadas pelo Debezium e distribui mensagens para os consumidores. | | Audit Consumer | Serviço que consome as mensagens do Kafka, realiza transformações nos dados e os insere no banco de dados ImmuDB. | | ImmuDB | Banco de dados imutável utilizado para armazenar os registros de auditoria, garantindo integridade e rastreabilidade dos eventos. | | Audit API | Serviço de backend que expõe endpoints para consulta e acesso aos registros de auditoria armazenados no ImmuDB. | | Audit UI | Interface gráfica (frontend) que permite a consulta e análise das trilhas de auditoria. |
Tecnologias
| Categoria | Ferramenta/Descrição | |---------------------|-----------------------------| | Linguagem | Golang, JavaScript (NodeJS) | | Bibliotecas | React | | Banco de Dados | ImmuDB, Postgres | | Mensageria | Apache Kafka |
Instalação
A aplicação está configurada para ser executada com Docker Compose. Siga os passos logo abaixo, mas assegure-se de ter os pré-requisitos instalados:
Pré-requisitos:
- Docker
- Go 1.21 ou superior
- Node 20.12 ou superior (para executar projeto localmente)
- Clonar o repositório
git clone https://github.com/Waelson/audit.git
cd audit
- Inicializar a stack
docker-compose up --build
- Criar o conector
curl --location 'http://localhost:8083/connectors' \
--header 'Content-Type: application/json' \
--data '{
"name": "postgres-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.hostname": "postgres",
"database.port": "5432",
"database.user": "postgres",
"database.password": "password",
"database.dbname": "payment_db",
"database.server.name": "payment-postgres",
"slot.name": "debezium_slot",
"plugin.name": "pgoutput",
"publication.name": "audit_events",
"database.history.kafka.bootstrap.servers": "kafka:9092",
"database.history.kafka.topic": "schema-changes.audit-trail",
"topic.prefix": "audit",
"table.include.list": "public.payments",
"transforms": "RouteToTopic,AddAppName",
"transforms.RouteToTopic.type": "org.apache.kafka.connect.transforms.RegexRouter",
"transforms.RouteToTopic.regex": "audit.public.payments",
"transforms.RouteToTopic.replacement": "audit-trail",
"decimal.handling.mode": "string",
"transforms.AddAppName.type": "org.apache.kafka.connect.transforms.InsertField$Value",
"transforms.AddAppName.static.field": "application",
"transforms.AddAppName.static.value": "payment-api"
}
}'
- Acessar a UI de Simulação de Pagamentos
- Digite a URL http://localhost:3000/ no browser.
- Realize simulações de transações de pagamento de cartão de crédito clicando no botão
Pay.
- Acessar a UI de Consulta de Trilhas de Auditoria
- Digite a URL http://localhost:4000/ no browser.
- Preencha os filtros, lembrando de que a única operação contemplada é
Createe depois clique no botãoSearch.
Interface de Usuário
Simulador de Pagamentos

Consulta de Trilhas de Auditoria

Contribuições
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias, correções ou novas funcionalidades.
Licença
Este projeto está licenciado sob a Licença MIT.
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
xurl
347.6kA CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
