• 软件设计是一个不断发展的过程。每一个大系统都是从一个小系统开始的。当现有架构遇到问题但无法解决时,系统将开始演进。每一次进化都伴随着一些技术选择。应该解决哪些问题?它会付出怎样的代价?作为架构师或高级工程师,必须找到合理的演进方式,无论开发进度、技术堆栈、团队水平如何,都必须能够满足这些标准
  • 在这篇博客中,我们将使用命令和查询责任分离(CQRS) +存储库模式建立领域驱动设计(DDD)架构,在docker的帮助下,我们使这个应用程序 dockerize 使用docker-compose.yml icon
  • 命令-查询职责分离 (CQRS) 是一种架构风格,用于开发易于维护并提供高性能的应用程序。CQRS 基于六边形架构,其主要特征是将域模型拆分为读取和写入操作,以最大限度地提高语义、性能和可扩展性。双方的编排采用多种策略处理,异步消息传递是最通用的一种。 icon
  • 微服务架构促进了去中心化的数据管理实践,其中每个服务都将其数据保密并仅通过定义良好的 API 接口将其公开。尽管这是为了更大的利益,但开发人员发现实现跨越多个服务边界的查询具有挑战性。 一个微服务经常联系几个依赖服务来完成一个读取请求。例如, ShippingService 查询 Custo icon
  • 事件溯源经常会被误解。这包括自动使用事件溯源意味着您必须在系统中各处引入最终一致性的想法。 icon
  • 这个项目正在使用Fmodel - Kotlin,多平台库。 特点: icon
  • 基于领域驱动设计、CQRS 和事件溯源的简单银行 API:写了一个由两个微服务和一个 API 网关组成的银行账户 API 。我用 TypeScript 和 NestJS 实现了微服务。但是,使用Go编写 API 网关。在这个项目中无缝地结合了 DDD、CQRS 和事件溯源。由 icon
  • EventStoreDB 是事件溯源的数据库。这个GitHub存储库提供了一个使用 EventStoreDB 作为事件存储的事件源系统示例。 此示例使用受 icon
  • CQRS 是一种微服务架构模式,它代表命令和 icon
  • 俗话说计算机科学只有两件难的事:缓存失效和命名。好吧,事实证明第一个实际上已经解决了。了解如何在靠近用户的分布式缓存中保持数据的读取视图,始终与您的主数据存储更改数据捕获保持同步。你将学到如何: * 为基于 Debezium、Apache Kafka 和 Infini icon
  • 本文将介绍缓存方面的一些挑战、使用的典型解决方案以及使用命令查询职责分离 (CQRS) 作为更好策略的概念。 缓存都是关于延迟的 icon
  • Dewdrop 是一个自以为是的、简单而强大的框架,用于在 Java 中实现事件溯源。Dewdrop 的想法是通过将所有复杂的事件读取、写入和编组深入到框架中,使您的团队能够专注于根据 AggregateRoot 构建业务逻辑,从而轻松快速地构建事件驱动系统行为、查询逻辑和 ReadMode icon
  •  Zilla是一个用于事件流的开源 API 网关,Zilla 使用标准协议(例如 HTTP、Server-Sent Events 和 Kafka)将 Web 和移动应用程序连接到事件驱动的微服务。对 MQTT、gRPC、GraphQL、AMQP、WebSocket 和 WebHook icon
  • Marten是.NET 事务文档数据库和 PostgreSQL 上的事件存储。 下图是采用Marten的事件源样式,以便在更大的 CQR icon
  • 当您从头开始构建后端系统时,一切都会看起来很美好。API 响应速度极快(例如,100 毫秒响应时间),资源消耗看起来很稳定,最重要的是用户很高兴使用您的系统,这会让您为您的系统及其架构感到自豪。 随着时间的推移,一个潜在客户肯定会增长很多倍,这就是 icon
  • 数据库视图只是伪装成表的查询。数据表主要记录数据。视图产生从该数据派生的信息。 下面是几个用途:1、抽象也许您必须连接来自数十个不同表的数据才能获得特定类型报告所需的所有数据。因此,您可以通 icon
  • 分布式系统架构由于其灵活性、可扩展性和容错性而变得越来越流行。然而,实时查询来自多个微服务的数据可能具有挑战性,因为它可能需要复杂且耗时的数据检索操作。物化视图与命令查询职责分离(CQRS) 模式相结合,可以通过实现微服务数据的高效实时查询来提供应对这一挑战的解决方案。 icon