Asynchronous designs trade immediate answers for resilience: a call can be retried until it succeeds, but the sender no longer knows the outcome right away. #Fintech #DistributedSystems
Kanishka Naik
@kanishkanaik.dev
Senior Software Engineer & Open-Source Maintainer JS/TS • Elixir • Go • Solidity Exploring payments, ledgers, and distributed systems Astrophile 🔭 | Stargazer 💫 https://kanishkanaik.dev
Asynchronous messaging typically runs through a lightweight message broker, such as RabbitMQ or a cloud service bus, that queues messages between producing and consuming services. #Fintech #EventDriven
Asynchronous communication lets a sender transmit a message without waiting for a reply, so it can continue other work immediately. It exists to reduce coupling between distributed services. #Fintech #Messaging
Synchronous calls between fintech services introduce direct runtime coupling: if the receiver is slow or unavailable, the calling service is affected too. #SystemDesign #Fintech
In microservice architectures, single-receiver, request/response calls over HTTP or gRPC are the most common synchronous style, per Microsoft's .NET architecture guidance. #Microservices #Fintech
Synchronous communication means a caller sends a request and blocks until the receiver replies. It exists so a service can get an immediate, ordered answer before it moves to the next step. #Fintech #DistributedSystems
Released a few new NPM fintech SDKs Weavr: www.npmjs.com/package/weav... Xero: www.npmjs.com/package/xero... Treasury Prime: www.npmjs.com/package/trea... Moov: www.npmjs.com/package/moov... #NPM #SDK #OpenSource #FinTech #Weavr #Xero #TreasuryPrime #Moov #Payments #Banking #Openbanking
npmjs.com
How is an Anti-Corruption Layer applied during a system migration? It routes calls between a monolith and newly migrated services, converting requests into whichever interface each side expects. #Fintech #Migration #DDD
Why introduce an Anti-Corruption Layer? To isolate two subsystems by placing a translation layer between them, so one system can stay unchanged while the other avoids compromising its own design. #Fintech #DDD #Architecture
An Anti-Corruption Layer implements a facade or adapter between subsystems that don't share the same semantics, translating requests from one subsystem to the other. #Fintech #AntiCorruptionLayer #DDD
Released a few new Go SDKs for fintech. Worldpay: pkg.go.dev/github.com/i... Moov: pkg.go.dev/github.com/f... Starling Bank: pkg.go.dev/github.com/i... Weavr: pkg.go.dev/github.com/i... Xero: pkg.go.dev/github.com/i... Treasury Prime: pkg.go.dev/github.com/i... Mercury: pkg.go.dev/github.com/i...
worldpay package - github.com/iamkanishka/worldpay-go - Go Packages
pkg.go.dev
How does a Strangler Fig migration typically begin? By identifying the boundaries of the existing system to be replaced, whether that is an entire application or a smaller subsystem within one. #Fintech #StranglerFig #Architecture
Why use the Strangler Fig pattern? It reduces the risk of a full cut-over rewrite of a critical system, letting a legacy application keep running while functionality migrates piece by piece. #Fintech #StranglerFig #Migration
The Strangler Fig pattern, coined by Martin Fowler, incrementally replaces specific pieces of a legacy system with new services while customers keep using the same interface. #Fintech #LegacyModernization #StranglerFig
Why decompose by subdomain instead of by business capability? Both patterns address the same underlying problem: how to define correct, loosely coupled service boundaries in a complex application. #Fintech #DDD #Microservices
Domain-driven design rejects a single unified model for an entire system. It instead divides a system into bounded contexts, each holding its own domain model tied to a specific subdomain. #Fintech #DDD #DistributedSystems
Decompose by subdomain is a microservices pattern that defines services corresponding to domain-driven design subdomains rather than business capabilities. #Fintech #DDD #Microservices
A business capability refers to a business activity aimed at generating value, for example order management or customer management, and each can map to its own microservice. #Fintech #Microservices #BusinessCapability
Applying decompose by business capability requires enough insight into an organization's business units, typically drawing on subject matter experts for each unit. #Fintech #Microservices #Architecture
Decompose by business capability is a microservices pattern that defines services corresponding to what a business does to generate value, such as payments, accounts, or customer service. #Fintech #Microservices #BusinessCapability
How are microservice boundaries identified? One documented approach starts with a bounded context, then examines the aggregates inside it, since aggregates often make good candidates for individual services. #Fintech #Microservices #DDD
Why do service boundaries matter in distributed fintech systems? Poorly drawn boundaries create tight coupling, forcing teams to coordinate changes across services instead of deploying independently. #Fintech #DistributedSystems #Architecture
A service boundary marks where one service's responsibility ends and another begins. Each microservice is self-contained and implements a single business capability within a bounded context, a natural division within a business domain. #Fintech #Microservices #DDD
How is an Anti-Corruption Layer applied during a system migration? It routes calls between a monolith and newly migrated services, converting requests into whichever interface each side expects. #Fintech #Migration #DDD
Why introduce an Anti-Corruption Layer? To isolate two subsystems by placing a translation layer between them, so one system can stay unchanged while the other avoids compromising its own design. #Fintech #DDD #Architecture
An Anti-Corruption Layer implements a facade or adapter between subsystems that don't share the same semantics, translating requests from one subsystem to the other. #Fintech #AntiCorruptionLayer #DDD
How does a Strangler Fig migration typically begin? By identifying the boundaries of the existing system to be replaced, whether that is an entire application or a smaller subsystem within one. #Fintech #StranglerFig #Architecture
Why use the Strangler Fig pattern? It reduces the risk of a full cut-over rewrite of a critical system, letting a legacy application keep running while functionality migrates piece by piece. #Fintech #StranglerFig #Migration
The Strangler Fig pattern, coined by Martin Fowler, incrementally replaces specific pieces of a legacy system with new services while customers keep using the same interface. #Fintech #LegacyModernization #StranglerFig
Released 4 new open-source Elixir SDKs for fintech platforms! 🚀 • Starling Bank – https://hex.pm/packages/starling_bank • Moov – https://hex.pm/packages/moov • SumUp – https://github.com/iamkanishka/sumup • Unit – https://github.com/iamkanishka/unit #Elixir #OpenSource #FinTech #Banking
starling_bank
A complete, production-grade Elixir client for the Starling Bank Public API (Accounts, Payments, Savings Goals, Direct Debits, Cards, Webhooks, and more).
hex.pm