Welcome to MikeDaDev's Blog – notes on Java, backend & system design.

Explore
MikeDaDev's Blog

All posts

I like to write about stuff I'm into. You'll find a mix of web dev articles, tech news and random thoughts from my life. Use the search below to filter by title.

Spring Modulith

Trước khi chia hệ thống thành Microservices và ôm theo đủ thứ đau đầu về network, distributed transaction, observability, thử xem Spring Modulith: giải pháp chính thức từ Spring để làm Modular Monolith với ranh giới module rõ ràng, tự kiểm tra phụ thuộc và event nội bộ giữa các module.

in ai / n8n

AI agent workflows với n8n

Từ chỗ viết cả trăm dòng code nối API tới chỗ dựng hẳn một hệ thống AI Agent tự động hoá. Bài này đi qua kiến trúc AI Agent trong n8n, LangChain node, Vector Store, Tool Calling và mấy kinh nghiệm khi đưa lên production.

T24 core banking

T24 (Temenos Transact) là hệ thống core banking, nơi mọi giao dịch tài chính của ngân hàng chạy qua. Chia module rõ ràng, xử lý realtime, nó đang làm xương sống cho nghiệp vụ chính của khoảng một nghìn ngân hàng. Bài này ghi lại những gì dev cần biết khi phải làm việc với nó.

activiti 8

Activiti 8 là engine BPM/workflow mã nguồn mở, làm ra để chạy tốt trên môi trường cloud-native. Nó chạy được BPMN chuẩn, gắn chặt với Spring Boot, nên hay được dùng làm "nhạc trưởng" điều phối microservices, nhất là khi phải quản lý mấy luồng giao dịch phân tán rắc rối theo kiểu Saga.

backbase - digital banking platform

Backbase là một nền tảng ngân hàng số (Engagement Banking Platform) giúp ngân hàng làm mới trải nghiệm khách hàng trên mọi kênh mà không phải thay cả hệ thống core banking cũ. Nó nằm như một lớp tương tác phía trên các hệ thống sẵn có, phục vụ cả ngân hàng bán lẻ, doanh nghiệp lẫn quản lý tài sản.

BPMN 2.0

BPMN 2.0 (Business Process Model and Notation) là chuẩn quốc tế về ký hiệu đồ họa để vẽ và thiết kế quy trình nghiệp vụ. Nó là "ngôn ngữ chung" giữa business analyst, dev và ban quản lý, và model vẽ ra có thể chạy trực tiếp trên workflow engine. Bài này đi qua events, activities, gateways, process variables, listeners, error handling, tích hợp Activiti với Spring Boot và các best practice.

clean architecture

Clean Architecture là kiểu kiến trúc chia hệ thống thành các vòng tròn đồng tâm, với một luật phụ thuộc rất chặt: lớp bên trong (chứa logic nghiệp vụ) không bao giờ được phụ thuộc vào lớp bên ngoài (UI, Database, Framework). Nhờ vậy nghiệp vụ không dính vào công nghệ cụ thể nào, dễ test, dễ bảo trì và dễ mở rộng.

map vs flatmap

map và flatMap trong Java nhìn từ gốc là Monadic Bind: flatMap cấp phát bộ nhớ thế nào trong Stream, thay bằng mapMulti (Java 16) để đỡ GC Churn, thenCompose trong CompletableFuture, và cái bẫy mất thứ tự khi dùng flatMap trong Reactive Streams.

RabbitMQ căn bản

RabbitMQ là gì, vì sao nên dùng, kiến trúc bên trong và cách tích hợp với Spring Boot, kèm các pattern đảm bảo reliability cho production.