Tomato Architecture

what

  • Simplified hexagonal architecture

  • Aim is to keep it simpler

    • Focus on separation of concern

      • package by feature

      • Keep app core/domain independent from delivery mechanisms

      • separate logic from input mechanisms

      • Dont let "External Service Integrations" influence the "Application Core" too much

      • Keep business logic in one place

    • Avoid unnecessary interfaces

      • Dont expect to change things just in case you change technologies or delivery mechanisms or input sources

      • focus on changing the code instead of making it more abstract

    • Avoid keeping an indirection overt the framework, just in case of future change

    • Dont entirely focus on unit testing (ie mocking/stub out external dep or delivery mechanisms)

      • Aim to test these mechanism as a whole, as cheaper and faster to do

      • if not use something close to it, ie wiremock

  • https://github.com/sivaprasadreddy/tomato-architecture

    • https://www.sivalabs.in/tomato-architecture-pragmatic-approach-to-software-design/

Example

  • JVM Performance Engineering

Comparisons

  • https://medium.com/oolooroo/navigating-the-maze-of-modern-architectures-comparing-and-contrasting-leading-software-dcec9b68fc87

Last updated