Podcast
Questions and Answers
What is the primary benefit of using lazy loading for non-critical resources?
What is the primary benefit of using lazy loading for non-critical resources?
- It allows faster initial rendering of critical content. (correct)
- It ensures all resources load simultaneously.
- It delays the loading of only non-essential resources.
- It preloads all resources before user interaction.
What is the main purpose of using the Common Plugin API in drop-ins?
What is the main purpose of using the Common Plugin API in drop-ins?
- To allow developers to bypass bootstrap files.
- To create a uniform structure across all applications.
- To integrate plugins for improved discoverability. (correct)
- To limit drop-in functionalities to a single application.
Which tool is specifically mentioned for performance testing?
Which tool is specifically mentioned for performance testing?
- Jest
- React
- Google Lighthouse (correct)
- UglifyJS
What role does dc-core serve within the application ecosystem?
What role does dc-core serve within the application ecosystem?
How does proper versioning contribute to modifiability in Drop-in components?
How does proper versioning contribute to modifiability in Drop-in components?
What is the role of dropin discovery in enhancing Drop-in features?
What is the role of dropin discovery in enhancing Drop-in features?
What is a primary function of using Iframes in web applications?
What is a primary function of using Iframes in web applications?
Which tool is specifically mentioned as a custom solution for discovering drop-ins?
Which tool is specifically mentioned as a custom solution for discovering drop-ins?
What is a key characteristic of the plug-and-play feature of Drop-in components?
What is a key characteristic of the plug-and-play feature of Drop-in components?
What is a major consequence of slow first load times for applications?
What is a major consequence of slow first load times for applications?
Which feature aids in immediate tool accessibility during PDF rendering?
Which feature aids in immediate tool accessibility during PDF rendering?
What approach improves the user experience by optimizing PDF loading times?
What approach improves the user experience by optimizing PDF loading times?
Which of the following BEST describes the nature of modular 'Drop-In' architecture?
Which of the following BEST describes the nature of modular 'Drop-In' architecture?
What is the significance of optimizing assets such as CSS and JavaScript?
What is the significance of optimizing assets such as CSS and JavaScript?
Which development framework is stated as beneficial for building user interfaces?
Which development framework is stated as beneficial for building user interfaces?
When integrating a drop-in, which file is essential for initialization?
When integrating a drop-in, which file is essential for initialization?
What is the primary purpose of using feature flags in the system?
What is the primary purpose of using feature flags in the system?
How does the feature flagging system benefit the architecture?
How does the feature flagging system benefit the architecture?
Which architecture allows dynamic, replaceable parts to add functionality without altering the core system?
Which architecture allows dynamic, replaceable parts to add functionality without altering the core system?
What does the Layers Pattern promote in the system architecture?
What does the Layers Pattern promote in the system architecture?
What is a feature management tool mentioned for handling feature flags?
What is a feature management tool mentioned for handling feature flags?
How does the architecture facilitate continuous A/B testing?
How does the architecture facilitate continuous A/B testing?
In what scenario is the Plug-and-Play Architecture utilized?
In what scenario is the Plug-and-Play Architecture utilized?
What is a major advantage of avoiding code updates when using feature flags?
What is a major advantage of avoiding code updates when using feature flags?
What is the function of Dropins within the application?
What is the function of Dropins within the application?
What does the term 'Bootstraping' refer to in the context provided?
What does the term 'Bootstraping' refer to in the context provided?
Which statement best describes Ethos?
Which statement best describes Ethos?
What role does the dc-core library play in application development?
What role does the dc-core library play in application development?
What is the primary purpose of Moonbeam in the mentioned architecture?
What is the primary purpose of Moonbeam in the mentioned architecture?
What is the primary purpose of the view-sdk-bundle in the architecture?
What is the primary purpose of the view-sdk-bundle in the architecture?
Which layer directly interacts with WASM files to display content on the canvas?
Which layer directly interacts with WASM files to display content on the canvas?
Which aspect of the architecture allows for asynchronous bootstrapping of dropins?
Which aspect of the architecture allows for asynchronous bootstrapping of dropins?
What does the Embed SDK consume to render Adobe's PDF Application?
What does the Embed SDK consume to render Adobe's PDF Application?
From which layer does the basic rendering of the PDF files start?
From which layer does the basic rendering of the PDF files start?
What is the role of the Preview Dropin within the architecture?
What is the role of the Preview Dropin within the architecture?
What allows the architecture to be consumed by various clients like GDrive and MS Teams?
What allows the architecture to be consumed by various clients like GDrive and MS Teams?
Which layer serves as the engine for PDF rendering, written in C++?
Which layer serves as the engine for PDF rendering, written in C++?
Flashcards are hidden until you start studying
Study Notes
Architecture Goals
- Drop-in Integration: Ensure drop-ins contribute to building composite applications by effectively utilizing shared services and data.
- Interoperability: Achieve interoperability between modules and iframes.
- Performance: Optimise first page load and first action availability.
- Modifiability: Allow easy addition and removal of features.
Architecture Techniques
- Modular "Drop-In" Architecture:
- Drop-ins are grouped into iframes to create cohesive web apps, with a standard structure and a
bootstrap.js
file for initialization. - Modules promote reusability and maintainability, while iframes embed third-party content without altering the parent application.
- Drop-ins are grouped into iframes to create cohesive web apps, with a standard structure and a
- Performance Optimization:
- Asset Optimization: Reduce the size of CSS, JavaScript, and images.
- Lazy Loading: Load non-critical resources only when needed.
- Asynchronous Loading: Load JavaScript files without waiting for rendering.
- Drop-In Components:
- Introduce new functionalities in existing drop-ins to improve capabilities and user experience.
- Use proper versioning for integration with other applications.
- Employ a drop-in discovery system for a single source of truth for providers and drop-ins.
- Implement plug-and-play functionality for seamless feature addition.
- Feature Flags for Gradual Removal:
- Enable easy removal of features for streamlined functionality and user experiences.
- This caters to frequent A/B testing and adapts to user feedback or changing business needs without requiring code updates and redeployments.
- Feature Management Tools:
- Utilize feature management tools like Sofia for effective management of feature flags.
Architecture Patterns
- Plug-and-Play Architecture (Drop-ins): This supports dynamic replaceable parts for extending functionality without interfering with the core system.
- Layers Pattern: System components are organized in a structured stack of layers, each level dependent on the level below, promoting clear responsibilities and maintainability.
Deployment
- Ethos: Internal GitOps-based Kubernetes-native CI/CD solution for deploying drop-ins and providers.
- Moonbeam: Deployment pipeline for controlling deployments in multiple environments.
Key Learnings
- Understanding the evolution of architecture decisions over time.
- Representing architecture for different stakeholders.
- Understanding how deployments occur and viewing the system from a holistic perspective.
- Identifying and measuring relevant tactics within designs.
- Developing a critical analysis of complex architectures.
Terminology
- Drop-in: A modular component that delivers a feature for the PDF application.
- Provider: A service that provides specific functionality or information to applications.
- dc-core: A core library for integrating drop-ins and providers into an application.
- dc-discovery: A tool for discovering and managing drop-ins and providers.
- DropinHarness: A development harness for local testing of drop-ins.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.