Giter Site home page Giter Site logo

wso2 / reference-architecture Goto Github PK

View Code? Open in Web Editor NEW
1.7K 104.0 306.0 29.68 MB

The Reference Architecture for Agility is a technology-neutral logical architecture based on a disaggregated cloud-based model.

License: Other

decentralized microservices cloud-native architecture

reference-architecture's Introduction

Emerging Reference Architectural Patterns & Guides

ra banner

A proven approach to helping every development organization become an integration agile organization. The Reference Architecture for Agility is a technology neutral logical architecture based on a disaggregated cloud-based model. It can be applied in incremental stages to create an integration agile foundation for any digital enterprises - deployable in private, public or hybrid cloud environments.

We welcome and appreciate any feedback, changes, or contributions. Please send a pull request, create a github issue.

  • Cell-based Architecture (CBA) - Decentralized, Cloud native, Microservice compliant

    Functional capabilities grouped in an architecture unit based on scope and ownership. It is decentralized where data moves within and across cells and governance are transparently applied through a control plane embedded within cells.

  • Layered and Segmented Architecture - API-centric centralized architectures

    The focus of the enterprises moved to API-driven with the digital transformation became the strategy. As a result, the business and the technical architecture moved from service-orientation to API-centric. The primary focus of this specification is to look at the architecture approaches taken by the industry and represent those patterns as generic reference architectures. We identified two reference architectures, layered and segmented which we will be discussing in detail in this paper.

    • Segmented Reference Architecture: Functional capabilities sub-grouped within layers based on organizational ownership. It is a centralized system where data flow moves from layer to layer.

    • Layered Reference Architecture: Functional capabilities grouped in layers by following a System of Systems view. It is a centralized system where data moves from layer to layer.

Architectural Guides & Concept Papers

This paper introduces the 'Platformless' concept, emphasizing its intersections with APIs, cloud native mddleware practices, and platform engineering in the context of modern enterprise software engineering.

Explore a comprehensive redefinition of the Internal Developer Platform, covering its scope beyond CI/CD and infrastructure automation. This guide offers in-depth architectural insights aimed at technical decision-makers and software architects.

Technology Specific Reference Architectural Patterns

reference-architecture's People

Contributors

andreasjheix avatar anupama-pathirage avatar archiloque avatar arunans23 avatar asankaa avatar dakshitha avatar dakshitharatnayake avatar iheitlager avatar kbarendrecht avatar keizer619 avatar lakwarus avatar maheshika avatar rbcalub avatar samallama avatar sanjiva avatar stephen-kawaguchi avatar suhand avatar tysonrm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reference-architecture's Issues

Can the "User" be another system or an application?

Description:
In the first section, the "user" is defined as a human interacting with the system. But in enterprise systems, there can be B2B interactions where an application or a system can interact with the system.

Am I already using CBA?

Description:
Hi,
I think what I have been calling Microservices, actually is Cell Based Architecture. Because I split my "services"(lets call this a boundry) into a set of smaller runnable services e.g. HTTP API (client based communication), GRPC API (internal based communication other than anything on the broker, using service discovery on a scaled service to send the message to), business logic worker, projections worker and a service for testing the boundary.
These smaller services are all deployed typically in one go, seperate deployables, as a boundary / version.

The query flow of this would be something like:

  • user requests products to the products HTTP API
  • products HTTP API validates the request and then from the read database and sends the data back.

The command flow is more like this:

  • User requests to create a product to the products HTTP API
  • Products HTTP API validates the query, does extra validation with the read database to see if the product already exists or not. Then fires a command (with the data) over the bus for any services that consume it. Sends a no content response to the user (to create a non blocking HTTP request)
  • The business logic worker picks up the command adds the data to the event store, and fires off an event (can be many services consuming again) to the bus saying that it is successful in storing
  • Both the HTTP API and Projections pick this message up
    -- The HTTP API says that the request was successful via websocket with data that is needed from the event
    -- The Projections worker adds the data to the read models.

Without going into much more detail, do you think this is the case?

Also please may I ask what you are using to create your diagrams? it looks clean and clear!

Thanks,
Jamie

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.