Would you like to know how to decompose a monolith into a modular one using design practices like hexagonal architecture driven by use case semantics? This powerful technique enables an application codebase to evolve while minimising the risks of highly coupled, low cohesive modules and fragile tests.
Payments are part of everyday life. Whatever we buy, we need to pay for, right? For consumers, this seems simple, but only engineers understand the deep complexities inside payments – and consumers’ low tolerance for error. After launching the world’s first pure-play grocery retailing website 20 years ago, we’ve developed the Ocado Smart Platform (OSP), our end-to-end online grocery fulfilment solution, adopted by 12 of the world’s most forward-thinking retailers. This fast growth comes with the potential challenge of keeping the codebase clean, cohesive, and low coupled while following market-leading architectural principles like SOLID. To address this, we use a new, innovative architectural approach, based on Hexagonal Architecture driven by Use Case semantics. This architectural approach is being deployed gradually during a Monolith Decomposition. We use the Feature Flag technique quite extensively to select different infrastructure components and achieve other behaviours at runtime. In this session, you’ll also get some valuable tips and tricks to apply this style in your codebase.
Key takeaways:
Use of the Feature Flag technique to achieve multiple behaviours at runtime
Restructuring a core microservice from a Monolith into a Modular Monolith
Application of Hexagonal Architecture to achieve multiple infrastructure adapters at runtime
Understand the reason why Service Layer Based Development (SLBD) is not a feasible alternative
Discover how UseCase classes improve on SLBD