CQRS and Events give us the power to model our business as real-world events, and these events often flow up to client applications through an API. These clients think about their projections as action-driven graph models and they want their API to reflect that. How do you go from events to graphs? CQRS and Events actually have a natural affinity to graph-based APIs and this talk will show how to design an API your client developers will love to use, yet fit nicely in a CQRS environment.
Other graph API styles–Falcor and GraphQL–are compared to Hypermedia APIs.
Automated Apache Kafka Mocking and Testing with AsyncAPI | Hugo Guerrero, Red...HostedbyConfluent
Apache Kafka is getting used as an event backbone in new organizations every day. We would love to send every byte of data through the event bus. Like traditional REST APIs, a contract-first approach is very useful when designing event-driven architectures. In the case of asynchronous APIs, we have the AsyncAPI specification to document the endpoints where the schema of the records become the main part of the contract payload. Microcks allows us to deploy a testing and mocking platform to have a unified view of the endpoints to speed-up application delivery.
In this session we will:
- Go over the evolution of API specifications
- Review the approach for contract-first design with Apache Kafka
- Introduce the AsyncAPI specification
- Take an overview of an implementation example for automated mocking and testing
Scaling Your Team With GraphQL: Why Relationships MatterJoel Bowen
Have you used GraphQL yet? If you haven't, you're likely to encounter the technology soon. If you have, you might have questions about how to scale your team and what best practices large and small companies are following. What principles should I be following when developing a new GraphQL API? What tooling is available to help me be more productive and spend less time writing boilerplate code? How can many teams with many apps across one company share one graph?
GraphQL Conf 2019 just wrapped up in Berlin where I was fortunate to hear meet thoughtful leaders on these and other subjects related to GraphQL. So, whether you're brand new to GraphQL or have an active project using GraphQL, I'd like to share some of what I have learned so you can be productive with GraphQL and your teams - while keeping relationships at the center of our work.
Google Charts is a JavaScript API for quickly creating beautiful charts and graphs that are powerful, simple to use, and best of all free. This talk explores how you can incorporate Google Charts into your Android apps using a WebView and very little code.
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.
We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.
This is a hands on workshop where we build a real time serverles polling application that can easily scale to millions of request with no extra configuration. This is built using AWS Amplify, AWS AppSync and DynamoDB
In this presentation, Michael Stephenson talks about the Citizen Integrator, Microsoft Flow and also Power Apps.
The Azure-Citizen Integrator is a newer role to organizations but is expected to play an important part in the future of organizations currently going through digital transformations. He also explains how Azure Citizen Integrator can be empowered by Microsoft to deliver value to the business in a way that can be complimentary to IT strategy rather than being considered shadow IT.
Automated Apache Kafka Mocking and Testing with AsyncAPI | Hugo Guerrero, Red...HostedbyConfluent
Apache Kafka is getting used as an event backbone in new organizations every day. We would love to send every byte of data through the event bus. Like traditional REST APIs, a contract-first approach is very useful when designing event-driven architectures. In the case of asynchronous APIs, we have the AsyncAPI specification to document the endpoints where the schema of the records become the main part of the contract payload. Microcks allows us to deploy a testing and mocking platform to have a unified view of the endpoints to speed-up application delivery.
In this session we will:
- Go over the evolution of API specifications
- Review the approach for contract-first design with Apache Kafka
- Introduce the AsyncAPI specification
- Take an overview of an implementation example for automated mocking and testing
Scaling Your Team With GraphQL: Why Relationships MatterJoel Bowen
Have you used GraphQL yet? If you haven't, you're likely to encounter the technology soon. If you have, you might have questions about how to scale your team and what best practices large and small companies are following. What principles should I be following when developing a new GraphQL API? What tooling is available to help me be more productive and spend less time writing boilerplate code? How can many teams with many apps across one company share one graph?
GraphQL Conf 2019 just wrapped up in Berlin where I was fortunate to hear meet thoughtful leaders on these and other subjects related to GraphQL. So, whether you're brand new to GraphQL or have an active project using GraphQL, I'd like to share some of what I have learned so you can be productive with GraphQL and your teams - while keeping relationships at the center of our work.
Google Charts is a JavaScript API for quickly creating beautiful charts and graphs that are powerful, simple to use, and best of all free. This talk explores how you can incorporate Google Charts into your Android apps using a WebView and very little code.
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.
We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.
This is a hands on workshop where we build a real time serverles polling application that can easily scale to millions of request with no extra configuration. This is built using AWS Amplify, AWS AppSync and DynamoDB
In this presentation, Michael Stephenson talks about the Citizen Integrator, Microsoft Flow and also Power Apps.
The Azure-Citizen Integrator is a newer role to organizations but is expected to play an important part in the future of organizations currently going through digital transformations. He also explains how Azure Citizen Integrator can be empowered by Microsoft to deliver value to the business in a way that can be complimentary to IT strategy rather than being considered shadow IT.
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and StreamingLaunchAny
For more than a decade, web APIs have replaced the previous generation of web services. Throughout this period of growth, most APIs have been restricted to request-response over HTTP. We are now seeing a move back to eventing with the popularity of webhooks. Additionally, streaming is becoming another option for connecting services, apps, and devices. In this talk, we will look at the opportunities that event-based APIs and streaming offer and how our software architecture is evolving to handle these new styles of API interaction.
VLSI stands for Very Large Scale Integration. Generally there are mainly 2 types of VLSI projects – 1. Projects in VLSI based System Design, 2. VLSI Design Projects. You might be confused to understand the difference between these 2 types of projects. Let me now explain to you.
Projects in VLSI based system design are the projects which involve the design of various types of digital systems that can be implemented on a PLD device like a FPGA or a CPLD.
Austin API Summit 2018: Are REST APIs Still Relevant Today?LaunchAny
A look at common API styles available today, a look back at historical API styles, and guidance for selecting the right API styles for your organization. Deep-dive of HTTP, mentioned in the presentation, can be found at: http://bit.ly/power-http
API Thinking - How to Design APIs Through Systems DesignLaunchAny
A 5 min discussion about how to improve API design by focusing on domain modeling (to identify entities, relationships, transitions, and events) and systems design (to find the context boundaries for our APIs).
APIs Are Forever - How to Design Long-Lasting APIsLaunchAny
Teams often struggle with balancing the complexity of legacy applications, limited time, and limited resources when designing APIs. The result is often the release of less-than-ideal API design that meets the immediate needs of the client but misses opportunities for longer-term value. This talk explores systems design and domain-driven design (DDD) for API design thinking and how to apply this technique to your design process to create a clear, well-designed, long-lasting API. Presented at API Strategy and Practice 2015
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
Presented at GlueCon 2016. Applying good software engineering practices, system design, and domain-driven design for your public APIs and microservices
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Federating API Development at Australia’s largest business bank
Jason D'Souza, Senior Architect – API Gateways, & Lynne Lee, Senior Analyst, Engineer at NAB
Developer Experience (DX) as a Fitness Function for Platform TeamsAndy Marks
Co-delivered with Fendy Liauw on Wednesday May 9. See https://www.eventbrite.com.au/e/developer-experience-as-a-fitness-function-for-platform-teams-tickets-44697308854?aff=TWNetwork for details
apidays LIVE Paris - Exploring an API with Blocks by Larry Klugerapidays
apidays LIVE Paris - Responding to the New Normal with APIs for Business, People and Society
December 8, 9 & 10, 2020
Exploring an API with Blocks
Larry Kluger, Lead Developer Advocate at DocuSign
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
From micro to macro-coordination through domain-centric DDL pipeline
Alex Khilko, CTO of PlayQ Inc.
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays
apidays LIVE Hong Kong 2021 - API Ecosystem & Data Interchange
August 25 & 26, 2021
Multi-Protocol APIs at Scale in Adidas
Jesus de Diego, API Evangelist at Adidas
What is Apache Kafka, and What is an Event Streaming Platform?confluent
Speaker: Viktor Gamov, Developer Advocate, Confluent
Event streaming platforms have emerged as a popular new trend, but what exactly is an event streaming platform? Part messaging system, part Hadoop-made-fast, part fast ETL and scalable data integration, with Apache Kafka® at the core, event streaming platforms offer an entirely new perspective on managing the flow of data. This talk will explain what an event streaming platform such as Apache Kafka is and some of the use cases and design patterns around its use—including several examples of where it is solving real business problems. New developments in this area such as KSQL will also be discussed.
https://www.meetup.com/Boston-Apache-kafka-Meetup/events/258989900/
Original presentation slides are available at https://d1.awsstatic.com/events/reinvent/2019/REPEAT_1_Thinking_serverless_From_business_problem_to_serverless_solution_SVS213-R1.pdf. This deck shows the whiteboarded solutions in the presentation.
From Enterprise SaaS to Self-Serve Api- the S.T.R.E.A.M. Framework for API La...Tiffany Xingyu Wang
Success stories like Twilio and Stripe set the blueprint for API-first businesses. However, what if you already succeed in enterprise SaaS models, and desire to drive growth through API? When I first started to optimize growth opportunities through API, I could not find a playbook out there. Therefore, together with Matt McLarty - Global Leader of API Strategy at Mulesoft (a Salesforce Company) - we want to write a step-by-step guide of the API launch strategy.
The content was first published at APIDays London in Oct 2020.
GraphQL across the stack: How everything fits togetherSashko Stubailo
My talk from GraphQL Summit 2017!
In this talk, I talk about a future for GraphQL which builds on the idea that GraphQL enables lots of tools to work together seamlessly across the stack. I present this through the lens of 3 examples: Caching, performance tracing, and schema stitching.
Stay tuned for the video recording from GraphQL Summit!
Supercharging Self-Service API Integration with AI SnapLogic
Using an AI-Driven Model for Self-Service API Integration Developers must often build new applications that pull together multiple back-end services delivered via APIs. A new mobile app, for example, may need to connect to backend ERP or CRM systems using a variety of third-party APIs, which are then integrated and delivered as a new API that provides the mobile app interface. By applying machine learning to this process, developers can greatly increase the speed and reduce the complexity of API integration and management, empowering non-developers with the benefits of API integration.
This presentation outlines the challenges of API integration in a modern cloud context and explains how developers can leverage machine learning to speed application development, reduce errors and improve security and compliance.
GlueCon 2019: Beyond REST - Moving to Event-Based APIs and StreamingLaunchAny
For more than a decade, web APIs have replaced the previous generation of web services. Throughout this period of growth, most APIs have been restricted to request-response over HTTP. We are now seeing a move back to eventing with the popularity of webhooks. Additionally, streaming is becoming another option for connecting services, apps, and devices. In this talk, we will look at the opportunities that event-based APIs and streaming offer and how our software architecture is evolving to handle these new styles of API interaction.
VLSI stands for Very Large Scale Integration. Generally there are mainly 2 types of VLSI projects – 1. Projects in VLSI based System Design, 2. VLSI Design Projects. You might be confused to understand the difference between these 2 types of projects. Let me now explain to you.
Projects in VLSI based system design are the projects which involve the design of various types of digital systems that can be implemented on a PLD device like a FPGA or a CPLD.
Austin API Summit 2018: Are REST APIs Still Relevant Today?LaunchAny
A look at common API styles available today, a look back at historical API styles, and guidance for selecting the right API styles for your organization. Deep-dive of HTTP, mentioned in the presentation, can be found at: http://bit.ly/power-http
API Thinking - How to Design APIs Through Systems DesignLaunchAny
A 5 min discussion about how to improve API design by focusing on domain modeling (to identify entities, relationships, transitions, and events) and systems design (to find the context boundaries for our APIs).
APIs Are Forever - How to Design Long-Lasting APIsLaunchAny
Teams often struggle with balancing the complexity of legacy applications, limited time, and limited resources when designing APIs. The result is often the release of less-than-ideal API design that meets the immediate needs of the client but misses opportunities for longer-term value. This talk explores systems design and domain-driven design (DDD) for API design thinking and how to apply this technique to your design process to create a clear, well-designed, long-lasting API. Presented at API Strategy and Practice 2015
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
Presented at GlueCon 2016. Applying good software engineering practices, system design, and domain-driven design for your public APIs and microservices
apidays LIVE Australia 2020 - Federating API Development at Australia’s large...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
Federating API Development at Australia’s largest business bank
Jason D'Souza, Senior Architect – API Gateways, & Lynne Lee, Senior Analyst, Engineer at NAB
Developer Experience (DX) as a Fitness Function for Platform TeamsAndy Marks
Co-delivered with Fendy Liauw on Wednesday May 9. See https://www.eventbrite.com.au/e/developer-experience-as-a-fitness-function-for-platform-teams-tickets-44697308854?aff=TWNetwork for details
apidays LIVE Paris - Exploring an API with Blocks by Larry Klugerapidays
apidays LIVE Paris - Responding to the New Normal with APIs for Business, People and Society
December 8, 9 & 10, 2020
Exploring an API with Blocks
Larry Kluger, Lead Developer Advocate at DocuSign
apidays LIVE Australia 2020 - From micro to macro-coordination through domain...apidays
apidays LIVE Australia 2020 - Building Business Ecosystems
From micro to macro-coordination through domain-centric DDL pipeline
Alex Khilko, CTO of PlayQ Inc.
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays
apidays LIVE Hong Kong 2021 - API Ecosystem & Data Interchange
August 25 & 26, 2021
Multi-Protocol APIs at Scale in Adidas
Jesus de Diego, API Evangelist at Adidas
What is Apache Kafka, and What is an Event Streaming Platform?confluent
Speaker: Viktor Gamov, Developer Advocate, Confluent
Event streaming platforms have emerged as a popular new trend, but what exactly is an event streaming platform? Part messaging system, part Hadoop-made-fast, part fast ETL and scalable data integration, with Apache Kafka® at the core, event streaming platforms offer an entirely new perspective on managing the flow of data. This talk will explain what an event streaming platform such as Apache Kafka is and some of the use cases and design patterns around its use—including several examples of where it is solving real business problems. New developments in this area such as KSQL will also be discussed.
https://www.meetup.com/Boston-Apache-kafka-Meetup/events/258989900/
Original presentation slides are available at https://d1.awsstatic.com/events/reinvent/2019/REPEAT_1_Thinking_serverless_From_business_problem_to_serverless_solution_SVS213-R1.pdf. This deck shows the whiteboarded solutions in the presentation.
From Enterprise SaaS to Self-Serve Api- the S.T.R.E.A.M. Framework for API La...Tiffany Xingyu Wang
Success stories like Twilio and Stripe set the blueprint for API-first businesses. However, what if you already succeed in enterprise SaaS models, and desire to drive growth through API? When I first started to optimize growth opportunities through API, I could not find a playbook out there. Therefore, together with Matt McLarty - Global Leader of API Strategy at Mulesoft (a Salesforce Company) - we want to write a step-by-step guide of the API launch strategy.
The content was first published at APIDays London in Oct 2020.
GraphQL across the stack: How everything fits togetherSashko Stubailo
My talk from GraphQL Summit 2017!
In this talk, I talk about a future for GraphQL which builds on the idea that GraphQL enables lots of tools to work together seamlessly across the stack. I present this through the lens of 3 examples: Caching, performance tracing, and schema stitching.
Stay tuned for the video recording from GraphQL Summit!
Supercharging Self-Service API Integration with AI SnapLogic
Using an AI-Driven Model for Self-Service API Integration Developers must often build new applications that pull together multiple back-end services delivered via APIs. A new mobile app, for example, may need to connect to backend ERP or CRM systems using a variety of third-party APIs, which are then integrated and delivered as a new API that provides the mobile app interface. By applying machine learning to this process, developers can greatly increase the speed and reduce the complexity of API integration and management, empowering non-developers with the benefits of API integration.
This presentation outlines the challenges of API integration in a modern cloud context and explains how developers can leverage machine learning to speed application development, reduce errors and improve security and compliance.
App modernization projects are hard. Enterprises are looking to cloud-native platforms like Pivotal Cloud Foundry to run their applications, but they’re worried about the risks inherent to any replatforming effort.
Fortunately, several repeatable patterns of successful incremental migration have emerged.
In this webcast, Google Cloud’s Prithpal Bhogill and Pivotal’s Shaun Anderson will discuss best practices for app modernization and securely and seamlessly routing traffic between legacy stacks and Pivotal Cloud Foundry.
GraphQL is a query language for APIs and a server-side runtime. It allows fulfilling queries by using a type system you define for your data. Why use GraphQL? What are the pros and cons? We did research and summarised our conclusions.
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
Digital transformation includes replatforming applications to streamline release cycles, improve availability, and manage apps and services at scale. But many enterprises are afraid to take the first step because they don’t know where to start. In this webinar, Rohit will provide a step-by-step guide that covers:
● How to find high-value modernization projects within your application portfolio
● Easy tools and techniques to minimally change applications in preparation for replatforming
● How to choose the platform with the right level of abstraction for your app
● Examples that show how Java EE Websphere applications can be deployed to Pivotal Cloud Foundry
Speaker: Rohit Kelapure, Pivotal Consulting Practice Lead
90-minute October 2015 Los Angeles CTO Forum presentation on AngularJS, other JavaScript frameworks including ReactJS, and the state of web development in 2015.
Topics covered:
- State of web development in 2015
- AngularJS code examples
- Analysis of JavaScript MVC frameworks suitable for 2015-2019 development
- AngularJS pros/cons
- ReactJS
- Hybrid mobile apps
How Bankwest delivers business value through modern RESTful APIs with Java in...Rob Crowley
The Bankwest Core Banking System is based on loosely-coupled, CICS PL/I programs running on IBM System z. These have stood the test of time, running for more than 20 years and are still going strong today. With the advent of the burgeoning API economy, the time came to expose our Core Banking Data in a modern standards compliant manner direct to HTML5 apps and business partners. Whilst leveraging the existing PL/I programs, we wanted to dove-tail with modern RESTFul Web Services. This case study will cover how we've combined the light-weight Liberty Profile Application Server, a RESTful framework, CICS Channels and Containers and the JCICS library, to create a loosely-coupled modular architecture to deliver business value at pace.
An overview of 5 new API design trends. For each, I briefly summarize, show sample code, insert community opinions, showcase open source tooling, and find examples.
- Developer Experience
- GraphQL
- AsyncAPI
- OpenAPI Specification
- OAuth & OpenID Connect
Applications need data, but the legacy approach of n-tiered application architecture doesn’t solve for today’s challenges. Developers aren’t empowered to build and iterate their code quickly without lengthy review processes from other teams. New data sources cannot be quickly adopted into application development cycles, and developers are not able to control their own requirements when it comes to data platforms.
Part of the challenge here is the existing relationship between two groups: developers and DBAs. Developers are trying to go faster, automating build/test/release cycles with CI/CD, and thrive on the autonomy provided by microservices architectures. DBAs are stewards of data protection, governance, and security. Both of these groups are critically important to running data platforms, but many organizations deal with high friction between these teams. As a result, applications get to market more slowly, and it takes longer for customers to see value.
What if we changed the orientation between developers and DBAs? What if developers consumed data products from data teams? In this session, Pivotal’s Dormain Drewitz and Solstice’s Mike Koleno will speak about:
- Product mindset and how balanced teams can reduce internal friction
- Creating data as a product to align with cloud-native application architectures, like microservices and serverless
- Getting started bringing lean principles into your data organization
- Balancing data usability with data protection, governance, and security
Presenter : Dormain Drewitz, Pivotal & Mike Koleno, Solstice
InterCon 2016 - SLA vs Agilidade: uso de microserviços e monitoramento de cloudiMasters
Miguel Gubitosi, Project Leader do Mercadolibre.com fala sobre SLA vs Agilidade: uso de microserviços e monitoramento de cloud no InterCon 2016.
Saiba mais em http://intercon2016.imasters.com.br/
GCP Meetup #3 - Approaches to Cloud Native Architecturesnine
Talk by Daniel Leahy and Nic Gibson, given at the Google Cloud Meetup on March 3, 2020, hosted by Nine Internet Solutions AG - Your Swiss Managed Cloud Service Provider.
GraphQL can be one of the best ways to make your product development more fun and productive. In this presentation I talk about how GraphQL makes your life simpler, and how to write and deploy a GraphQL API with Apollo Server 2.0 and serverless deployment via Netlify Functions.
ER(Entity Relationship) Diagram for online shopping - TAEHimani415946
https://bit.ly/3KACoyV
The ER diagram for the project is the foundation for the building of the database of the project. The properties, datatypes, and attributes are defined by the ER diagram.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
This 7-second Brain Wave Ritual Attracts Money To You.!
Hypermedia APIs from Event-Driven CQRS Systems
1. Matt Bishop
Principal Architect, Elastic Path
● Built extensible hypermedia API for commerce (“Cortex”)
● Run R&D team creating an event-driven commerce architecture
@MattBishopL3
2.
3.
4. CQRS, Events and Hypermedia
API Projections
Event-Driven Meetup, March 2019
7. Not your Daddy’s DAO
changeGear(Gear.3rd)
applyBrakes(FootPressure.HARD)
pressGasPedal(FootPressure.HARD)
readSpeedometer()
data IN != data OUT
→ 90 mph
8. Events
Immutable Records of Change
Past-tense description of what
happened
● Cannot be deleted, modified
● “What’s done is done”
Product of a Command
14. REST
The document-centric way
Data endpoints with CRUDdy
methods
HTTP verbs:
● GET (read)
● POST (create)
● PUT / PATCH (modify)
● DELETE (uh, delete)
17. Netflix Had an RPC-Style REST API
● Grew organically
● Nobody loved it
● Slow performance
● Hard to modify
Netflix Client teams suffered greatly
18. API Clients made numerous chained calls, using data from a previous call to make the next calls
19. Netflix API team wanted to move chaining to server-side for efficiency
20. Dynamic Scripting Framework
● Client teams write
their own APIs
(Endpoint code)
● Provided a JVM-based
platform
● JS developers are
scripters, right?
This pattern is known now
as “Backend For
Frontend”
22. What’s a BFF?
● Server-Side, Client-facing microservice to
orchestrate the other microservices
● Services one kind of client
● BFFs are owned by the client team
● https://samnewman.io/patterns/architectural/bff
/
24. ● Multiple teams “share”
the API team
● Causes conflict,
coordination costs
25. ● BFF gives the client teams
the right to create their
own API
● No sharing, faster
26. ● BFF is recursive; split BFFs
as needed to avoid
conflict
● Biggest problem is unified
experiences. BFFs need to
deliver the same rules and
offerings as users interact
with multiple clients
33. What is a Graph?
● A bunch of things (nodes, vertices)
● Connected to each other (edges)
● The edges are named (relationship)
● Navigate the graph by following the relationships
40. Graph Queries
are Good, but...
What about Commands?
Falcor is query-only
GraphQL has Mutations, but no
context for when they can be used
They are just a list of Actions
GraphQL is missing State
41. State is More Than Data
GraphQL and Falcor are
data graphs, not state
graphs
State is data +
contextual affordances
Clients need to know
when they can use an
affordance
42. Hypermedia
Navigation and Stateful
Affordances in one API
● Hypermedia presents a graph
● Resources linked together with
relationships
● Affordances appear as links
when relevant, disappear when
not
43. How To Use a Hypermedia API
1. GET `/`
2. Follow <link>s to related resources
3. DELETE what you don’t want
4. PUT what you want to change
5. POST what you want to create
6. Go to Step 2
47. Bind API to a Graph Database
/investors/id
/rounds/id
<link rel=”participated-
in”>
48. Create Event Projectors For Related Nodes
payment
applied
/orders/id1
/payments/id2
order
[id1]
paymen
t [id2]
Payment
Projector ƒ
1. create
payment node
2. create
“payment” edge <link rel=”payment”>
49. Create Event Projectors For Affordances
payment
applied
/orders/id1
/checkout/orders/id1
order
[id1]
Checkout
Projector ƒ
2. create
“checkout” edge <link rel=”checkout”>
Checkout
order
[id1]
1. create
checkout
affordance node
related
event
related
event
related
event
related
event
50. Bind PUT/POST/DELETE to Commands
POST
/checkout/orders/id1
/checkout/orders/id1
checkout
order
● Map POST / PUT / PATCH / DELETE
to related Command
● ID data in URL used to find action
node in DB, fills in Command