In this whiteboard design session, you will work with a group to design a customer solution that leverages aspects of event-driven architectures. This solution should meet their needs and provide them with a unified data pipeine for their website, business units and customers.
At the end of this whiteboard design session, you will have gained insight on how to design highly scalable, cost-effective solutions that leverage Azure messaging services.
Outcome
Analyze your customer's needs.
Timeframe: 15 minutes
Directions: With all participants in the session, the facilitator/SME will present an overview of the customer case study along with technical tips.
- Meet your table participants and trainer.
- Read all of the directions for steps 1-3 in the student guide.
- As a table team, review the following customer case study.
Contoso provides an eCommerce web site for their customers that averages approximately 10 million clicks a day.
They have a ‘recently viewed’ feature on the site that is critical to their business and revenue. The ‘recently viewed’ functionality takes a long time to process and has many issues. It leverages cookies, has issues with private browsing and only updates twice a day.
Most of their systems rely on batch processing, raising concerns regarding the amount of time it takes to react to changes and apply updates to their business. Contoso is confident that most of their processing can be done in near-real time.
Today, a point-to-point architecture is heavily used throughout Contoso. As you can imagine, this approach has become difficult to maintain over the years. While a point-to-point architecture might work for small solutions, Contoso needs a more elegant and flexible solution moving forward.
Directors at Contoso are interested in exploring the notion of an event-driven architecture to see if there are long-term performance and costs benefits to the approach. If they can pull this off, they would like to add new features to the website (recommendations, trends, etc.)
Some of the main needs for Contoso are:
-
Near real time processing
- Product change updates - changes that originate from one system can be reflected in others, in near real time.
- Analytics - this includes being able to detect trends and anomalies from traffic on the website.
-
Provide support for batch processing where necessary. While they are moving away from batch processing, there will still be a need to keep some operations around that run in batches.
-
Scalable solution that can handle unexpected demand. They would like to put a solution in place that has the ability to scale for them if necessary. They don't anticipate this happening often, but would like to plan for the possibility.
-
Strong preference towards managed services and serverless technologies. They are hoping that their new solution will take advantage of managed services as much as possible so that they can focus on their business code, logic and operations.
-
Support different types of producers and consumers. Contoso has a large ecosystem of applications and tools throughout the organization. The new solution needs to have the ability to integrate well with this existing solutions.
-
Embrace OSS tools and ecosystem. Integrating with open source tools and frameworks is very important to Contoso.
-
Unified pipeline platform. This all comes down to the integration of a common, unified pipeline that can be leveraged by their applications.
Analytics
Contoso would like to support near-real time analytics so that they can:
- Identify trends
- Catch anomalies
- Provide enhanced recommendations
Real time updates
Products updates. Changes to products and other artifacts in the Contoso ecosystem can orginate from multiple sources, including databases. It's important that these change are available to other systems.
- Product information is currently stored in Cosmos DB
- Would like to reflect changes immediately on their website (and elsewhere)
Customer and product feedback. Contoso provides a set of APIs to their partners; both customer and product feedback is shared through these APIs and will be important to many internal consumers.
- Share updates from 3rd party sources
Partner notifications
Notify partners of product changes through some form of publish and subscribe (pub/sub) mechanism. Partners can provide an endpoint (example: WebHook) through which they can receive relevant updates and/or subscribe to the updates that are important to them.
-
Can we have a consistent format for all the events and messages?
-
What about business continuity (disaster recovery)?
-
Can we replicate the data to another region?
-
We need a way to continue to support our batch jobs within this new architecture. Ideally, we’d like to incorporate it into an event-driven architecture. Is this possible?
Outcome
Design a solution and prepare a 15-minute chalk-talk to present the solution to the target customer audience.
Timeframe: 60 minutes
Business needs
Directions: With all participants at your table, answer the following questions and list the answers on a flip chart:
-
Who should you present this solution to? Who is your target customer audience? Who are the decision makers?
-
What customer business needs do you need to address with your solution?
Design
Directions: With all participants at your table, respond to the following questions/tasks on a flip chart:
High-level architecture
-
Diagram your initial vision for handling the top-level requirements for the event-driven architecture.
-
Based on the customer situation, what core services would you propose as part of the new event-driven architecture?
Batch processing
-
Illustrate how batch processing would be supported within the architecture.
-
Describe how batch processing can still leverage an event-driven approach.
Partner notifications
-
Describe how partners can be notified of important changes from Contoso.
-
Show the services that will be leveraged to enable partner notifications.
Prepare
Directions: With all participants at your table:
-
Identify any customer needs that are not addressed within the proposed solution.
-
Identify the benefits of your solution.
-
Determine how you will respond to the customer's objections.
Prepare a 15-minute, chalk-talk style presentation for the customer.
Outcome
Present a 15-minute chalk-talk on the solution to the target customer audience.
Timeframe: 30 minutes
Presentation
Directions:
- Pair with another table.
- One table is the design team and the other table is the customer.
- The design team presents their proposed solution to the customer.
- The customer makes one of the objections from the list of objections.
- The design team responds to the objection.
- The customer team gives feedback to the design team.
- Tables switch roles and repeat Steps 2-6.
Timeframe: 15 minutes
Directions: Tables reconvene with the larger group to hear the facilitator/SME share the preferred solution for the case study.