- Documentação Spring Modulith
- Exemplos Spring Modulith
- Spring Modulith Crash Course : Building Modular Monoliths using Spring Boot By SivaLabs
- Melhore a Modularidade dos Seus Projetos com Spring Modulith – Guia Prático By Giuliana Bezerra
- Responsabilidade: Gerenciar o catálogo de livros.
- Livro (ID, título, autor, categoria, ISBN, status - disponível ou indisponível).
- Autor (ID, nome, biografia).
- Categoria (ID, nome, descrição).
- CRUD de livros, autores e categorias.
- Alterar status de disponibilidade do livro.
- Pesquisar livros por título, autor ou categoria.
- LivroAtualizado (ex.: para informar outros módulos sobre alterações de status).
- Responsabilidade: Gerenciar o cadastro e autenticação de usuários.
- Usuario (ID, nome, email, tipo - leitor ou administrador, data de cadastro).
- Cadastro de novos usuários.
- Atualização de informações.
- Ver histórico de empréstimos e reservas.
- UsuarioCadastrado (ex.: para enviar boas-vindas ou ativar notificações).
- UsuarioAtualizado.
- Responsabilidade: Gerenciar o processo de empréstimos e devoluções.
- Emprestimo (ID, usuário, livro, data de empréstimo, data de devolução, status - ativo ou concluído).
- Registrar novos empréstimos.
- Registrar devoluções.
- Consultar histórico de empréstimos.
- LivroEmprestado (ex.: notificar outros módulos sobre empréstimos).
- LivroDevolvido (ex.: atualizar status de disponibilidade no módulo Catalogação).
- Responsabilidade: Permitir que usuários reservem livros indisponíveis.
- Reserva (ID, usuário, livro, data de reserva, status - ativo ou concluído).
- Criar reserva para livros indisponíveis.
- Liberar reserva quando o livro for devolvido.
- Cancelar reservas.
- LivroDevolvido (para liberar a reserva e notificar o próximo da fila).
- ReservaCriada.
- ReservaConcluida.
- Responsabilidade: Enviar mensagens e notificações aos usuários.
- Notificacao (ID, tipo - email ou SMS, mensagem, destinatário, data de envio, status).
- Enviar notificações sobre empréstimos vencidos.
- Informar sobre a disponibilidade de livros reservados.
- LivroEmprestado (notificar prazo de devolução).
- ReservaConcluida (informar usuário sobre livro disponível).
- O usuário solicita o empréstimo de um livro.
- O módulo Empréstimos registra o empréstimo e publica o evento LivroEmprestado.
- O módulo Catalogação consome o evento e atualiza o status do livro para "indisponível".
- O módulo Notificações consome o evento e envia um email ao usuário informando o prazo de devolução.
- O usuário devolve um livro.
- O módulo Empréstimos registra a devolução e publica o evento LivroDevolvido.
- O módulo Catalogação consome o evento e atualiza o status do livro para "disponível".
- O módulo Reservas verifica se há reservas ativas para o livro e publica o evento ReservaConcluida.
- O módulo Notificações consome o evento e avisa ao próximo usuário sobre a disponibilidade do livro.