tgoop.com/emacsway_log/1340
Last Update:
Если почитать внимательно оригинальную статью "Pattern: Backends For Frontends" by Sam Newman, то в главе "General Perimeter Concerns" можно заметить, что он рекомендует размещать BFF после "generic perimeter concerns, such as authentication/authorisation or request logging". Т.е. после "Gateway Offloading pattern".
Проблема в том, что конструктивно "Gateway Offloading pattern" и "Gateway Routing pattern" реализуются на практике одним и тем же решением, например, KrakenD.
В свою очередь, "Gateway Routing pattern" решает проблему "the client must be updated when services are added or removed."
Vlad Khononov возлагает на api-gateway еще и функции "Anticorruption layer":
💬 "Anticorruption layers implemented using an API gateway can be consumed by multiple downstream bounded contexts." (для frontend это особенный вопрос).
Таким образом, получается, что размещение BFF за API-Gateway будет противодействовать назначению API-Gateway в устранении связанности между API микросервисов и их внешними клиентами.
Другой аргумент заключается в том, что BFF нуждается в агрегации, а не наоборот.
Ну и в таком случае он не сможет решать проблему "causing the backend to become a bottleneck in the development process."
Выгдядит так, что BFF должен располагаться, всё-таки, перед api-gateway. Какие существуют еще аргументы или контр-аргументы?
BY emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Share with your friend now:
tgoop.com/emacsway_log/1340