From 7a9dd74f213123818c8f9ad78ba3c979d7c6282b Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Fri, 23 Dec 2022 02:56:09 +0400 Subject: [PATCH] Update backend roadmap for 2023 --- .../roadmaps/101-backend/content-paths.json | 22 +- .../103-learn-a-language/103-csharp.md | 2 +- .../103-learn-a-language/105-javascript.md | 3 +- .../content/103-learn-a-language/readme.md | 2 + .../104-key-value-databases.md | 10 + .../content/109-apis/106-graphql.md | 12 + .../100-database-indexes.md | 7 + .../101-data-replication.md | 7 + .../102-sharding-strategies.md | 9 + .../109-scaling-databases/103-cap-theorem.md | 10 + .../content/109-scaling-databases/readme.md | 7 + .../103-cqrs.md | 2 +- .../104-event-sourcing.md | 10 + .../105-service-mesh.md | 13 + .../106-twelve-factor-apps.md | 23 + .../content/118-containerization/101-rkt.md | 13 - .../118-containerization/103-kubernetes.md | 12 + .../content/122-server-sent-events.md | 10 + .../101-backend/content/124-bonus-content.md | 5 + .../114-microservices/102-kubernetes.md | 13 +- public/project/backend.json | 17161 ++++++++-------- 21 files changed, 8862 insertions(+), 8491 deletions(-) create mode 100644 content/roadmaps/101-backend/content/107-nosql-databases/104-key-value-databases.md create mode 100644 content/roadmaps/101-backend/content/109-apis/106-graphql.md create mode 100644 content/roadmaps/101-backend/content/109-scaling-databases/100-database-indexes.md create mode 100644 content/roadmaps/101-backend/content/109-scaling-databases/101-data-replication.md create mode 100644 content/roadmaps/101-backend/content/109-scaling-databases/102-sharding-strategies.md create mode 100644 content/roadmaps/101-backend/content/109-scaling-databases/103-cap-theorem.md create mode 100644 content/roadmaps/101-backend/content/109-scaling-databases/readme.md rename content/roadmaps/101-backend/content/{115-architectural-patterns => 114-design-and-development-principles}/103-cqrs.md (95%) create mode 100644 content/roadmaps/101-backend/content/114-design-and-development-principles/104-event-sourcing.md create mode 100644 content/roadmaps/101-backend/content/115-architectural-patterns/105-service-mesh.md create mode 100644 content/roadmaps/101-backend/content/115-architectural-patterns/106-twelve-factor-apps.md delete mode 100644 content/roadmaps/101-backend/content/118-containerization/101-rkt.md create mode 100644 content/roadmaps/101-backend/content/118-containerization/103-kubernetes.md create mode 100644 content/roadmaps/101-backend/content/122-server-sent-events.md create mode 100644 content/roadmaps/101-backend/content/124-bonus-content.md diff --git a/content/roadmaps/101-backend/content-paths.json b/content/roadmaps/101-backend/content-paths.json index 87b4acb9b..66fc12e4c 100644 --- a/content/roadmaps/101-backend/content-paths.json +++ b/content/roadmaps/101-backend/content-paths.json @@ -48,22 +48,25 @@ "nosql-databases:column-databases": "/roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md", "nosql-databases:timeseries-databases": "/roadmaps/101-backend/content/107-nosql-databases/102-timeseries-databases.md", "nosql-databases:realtime-databases": "/roadmaps/101-backend/content/107-nosql-databases/103-realtime-databases.md", + "nosql-databases:key-value-databases": "/roadmaps/101-backend/content/107-nosql-databases/104-key-value-databases.md", "more-about-databases": "/roadmaps/101-backend/content/108-more-about-databases/readme.md", "more-about-databases:orms": "/roadmaps/101-backend/content/108-more-about-databases/100-orms.md", "more-about-databases:acid": "/roadmaps/101-backend/content/108-more-about-databases/101-acid.md", "more-about-databases:transactions": "/roadmaps/101-backend/content/108-more-about-databases/102-transactions.md", "more-about-databases:n-plus-one-problem": "/roadmaps/101-backend/content/108-more-about-databases/103-n-plus-one-problem.md", "more-about-databases:database-normalization": "/roadmaps/101-backend/content/108-more-about-databases/104-database-normalization.md", - "more-about-databases:database-indexes": "/roadmaps/101-backend/content/108-more-about-databases/105-database-indexes.md", - "more-about-databases:data-replication": "/roadmaps/101-backend/content/108-more-about-databases/106-data-replication.md", - "more-about-databases:sharding-strategies": "/roadmaps/101-backend/content/108-more-about-databases/107-sharding-strategies.md", - "more-about-databases:cap-theorem": "/roadmaps/101-backend/content/108-more-about-databases/108-cap-theorem.md", + "scaling-databases": "/roadmaps/101-backend/content/109-scaling-databases/readme.md", + "scaling-databases:database-indexes": "/roadmaps/101-backend/content/109-scaling-databases/100-database-indexes.md", + "scaling-databases:data-replication": "/roadmaps/101-backend/content/109-scaling-databases/101-data-replication.md", + "scaling-databases:sharding-strategies": "/roadmaps/101-backend/content/109-scaling-databases/102-sharding-strategies.md", + "scaling-databases:cap-theorem": "/roadmaps/101-backend/content/109-scaling-databases/103-cap-theorem.md", "apis": "/roadmaps/101-backend/content/109-apis/readme.md", "apis:rest": "/roadmaps/101-backend/content/109-apis/100-rest.md", "apis:json-apis": "/roadmaps/101-backend/content/109-apis/101-json-apis.md", "apis:soap": "/roadmaps/101-backend/content/109-apis/102-soap.md", "apis:grpc": "/roadmaps/101-backend/content/109-apis/103-grpc.md", "apis:hateoas": "/roadmaps/101-backend/content/109-apis/104-hateoas.md", + "apis:graphql": "/roadmaps/101-backend/content/109-apis/106-graphql.md", "apis:open-api-spec": "/roadmaps/101-backend/content/109-apis/105-open-api-spec.md", "apis:authentication": "/roadmaps/101-backend/content/109-apis/106-authentication/readme.md", "apis:authentication:cookie-based": "/roadmaps/101-backend/content/109-apis/106-authentication/100-cookie-based.md", @@ -98,12 +101,15 @@ "design-and-development-principles:gof-design-patterns": "/roadmaps/101-backend/content/114-design-and-development-principles/100-gof-design-patterns.md", "design-and-development-principles:domain-driven-design": "/roadmaps/101-backend/content/114-design-and-development-principles/101-domain-driven-design.md", "design-and-development-principles:test-driven-development": "/roadmaps/101-backend/content/114-design-and-development-principles/102-test-driven-development.md", + "design-and-development-principles:cqrs": "/roadmaps/101-backend/content/114-design-and-development-principles/103-cqrs.md", + "design-and-development-principles:event-sourcing": "/roadmaps/101-backend/content/114-design-and-development-principles/104-event-sourcing.md", "architectural-patterns": "/roadmaps/101-backend/content/115-architectural-patterns/readme.md", "architectural-patterns:monolithic-apps": "/roadmaps/101-backend/content/115-architectural-patterns/100-monolithic-apps.md", "architectural-patterns:microservices": "/roadmaps/101-backend/content/115-architectural-patterns/101-microservices.md", "architectural-patterns:soa": "/roadmaps/101-backend/content/115-architectural-patterns/102-soa.md", - "architectural-patterns:cqrs": "/roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md", "architectural-patterns:serverless": "/roadmaps/101-backend/content/115-architectural-patterns/104-serverless.md", + "architectural-patterns:service-mesh": "/roadmaps/101-backend/content/115-architectural-patterns/105-service-mesh.md", + "architectural-patterns:twelve-factor-apps": "/roadmaps/101-backend/content/115-architectural-patterns/106-twelve-factor-apps.md", "search-engines": "/roadmaps/101-backend/content/116-search-engines/readme.md", "search-engines:elasticsearch": "/roadmaps/101-backend/content/116-search-engines/100-elasticsearch.md", "search-engines:solr": "/roadmaps/101-backend/content/116-search-engines/101-solr.md", @@ -112,7 +118,7 @@ "message-brokers:kafka": "/roadmaps/101-backend/content/117-message-brokers/101-kafka.md", "containerization": "/roadmaps/101-backend/content/118-containerization/readme.md", "containerization:docker": "/roadmaps/101-backend/content/118-containerization/100-docker.md", - "containerization:rkt": "/roadmaps/101-backend/content/118-containerization/101-rkt.md", + "containerization:kubernetes": "/roadmaps/101-backend/content/118-containerization/103-kubernetes.md", "containerization:lxc": "/roadmaps/101-backend/content/118-containerization/102-lxc.md", "graphql": "/roadmaps/101-backend/content/119-graphql/readme.md", "graphql:apollo": "/roadmaps/101-backend/content/119-graphql/100-apollo.md", @@ -120,6 +126,7 @@ "graph-databases": "/roadmaps/101-backend/content/120-graph-databases/readme.md", "graph-databases:neo4j": "/roadmaps/101-backend/content/120-graph-databases/100-neo4j.md", "web-sockets": "/roadmaps/101-backend/content/121-web-sockets.md", + "server-sent-events": "/roadmaps/101-backend/content/122-server-sent-events.md", "web-servers": "/roadmaps/101-backend/content/122-web-servers/readme.md", "web-servers:nginx": "/roadmaps/101-backend/content/122-web-servers/100-nginx.md", "web-servers:apache": "/roadmaps/101-backend/content/122-web-servers/101-apache.md", @@ -130,5 +137,6 @@ "scalability:instrumentation-monitoring-telemetry": "/roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md", "scalability:migration-strategies": "/roadmaps/101-backend/content/123-scalability/102-migration-strategies.md", "scalability:horizontal-vertical-scaling": "/roadmaps/101-backend/content/123-scalability/103-horizontal-vertical-scaling.md", - "scalability:observability": "/roadmaps/101-backend/content/123-scalability/104-observability.md" + "scalability:observability": "/roadmaps/101-backend/content/123-scalability/104-observability.md", + "bonus-content": "/roadmaps/101-backend/content/124-bonus-content.md" } diff --git a/content/roadmaps/101-backend/content/103-learn-a-language/103-csharp.md b/content/roadmaps/101-backend/content/103-learn-a-language/103-csharp.md index 63c3f18e2..97ad8ea54 100644 --- a/content/roadmaps/101-backend/content/103-learn-a-language/103-csharp.md +++ b/content/roadmaps/101-backend/content/103-learn-a-language/103-csharp.md @@ -1,4 +1,4 @@ -# Csharp +# C# C# (pronounced "C sharp") is a general purpose programming language made by Microsoft. It is used to perform different tasks and can be used to create web apps, games, mobile apps, etc. Free Content diff --git a/content/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md b/content/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md index 4e949d62b..6108ff8a3 100644 --- a/content/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md +++ b/content/roadmaps/101-backend/content/103-learn-a-language/105-javascript.md @@ -6,8 +6,9 @@ # JavaScript -JavaScript, often abbreviated JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. It lets us add interactivity to pages e.g. you might have seen sliders, alerts, click interactions, and popups etc on different websites -- all of that is built using JavaScript. Apart from being used in the browser, it is also used in other non-browser environments as well such as Node.js for writing server-side code in JavaScript, Electron for writing desktop applications, React Native for mobile applications and so on. +Apart from being used in the browser, JavaScript is also used in backend e.g. using [Node.js](https://nodejs.org/) or [Deno](https://deno.land/) for writing server-side code in JavaScript. +If you pick up JavaScript for the Backend, my personal recommendation would be to learn [JavaScript](/javascript) and then go with [Node.js](/nodejs) as it is the most popular and widely used option. Also, I would recommend learning TypeScript later on as you continue with your backend development Journey; it's a superset of JavaScript and is used in many projects. Free Content diff --git a/content/roadmaps/101-backend/content/103-learn-a-language/readme.md b/content/roadmaps/101-backend/content/103-learn-a-language/readme.md index 1cb5648a8..d305ca9a9 100644 --- a/content/roadmaps/101-backend/content/103-learn-a-language/readme.md +++ b/content/roadmaps/101-backend/content/103-learn-a-language/readme.md @@ -3,3 +3,5 @@ Even if you’re a beginner the least you would have known is that Web Development is majorly classified into two facets: Frontend Development and Backend Development. And obviously, they both have their respective set of tools and technologies. For instance, when we talk about Frontend Development, there always comes 3 names first and foremost – HTML, CSS, and JavaScript. In the same way, when it comes to Backend Web Development – we primarily require a backend (or you can say server-side) programming language to make the website function along with various other tools & technologies such as databases, frameworks, web servers, etc. + +Pick a language from the given list and make sure to learn its quirks, core details about its runtime e.g. concurrency, memory model etc. diff --git a/content/roadmaps/101-backend/content/107-nosql-databases/104-key-value-databases.md b/content/roadmaps/101-backend/content/107-nosql-databases/104-key-value-databases.md new file mode 100644 index 000000000..939995aa6 --- /dev/null +++ b/content/roadmaps/101-backend/content/107-nosql-databases/104-key-value-databases.md @@ -0,0 +1,10 @@ +# Key-Value Databases + +A key-value database (KV database) is a type of database that stores data as a collection of key-value pairs. In a KV database, each piece of data is identified by a unique key, and the value is the data associated with that key. + +KV databases are designed for fast and efficient storage and retrieval of data, and they are often used in applications that require high performance and low latency. They are particularly well-suited for storing large amounts of unstructured data, such as log data and user profiles. + +Some popular KV databases include Redis, Memcached, and LevelDB. These databases are often used in combination with other types of databases, such as relational databases or document databases, to provide a complete and scalable data storage solution. + +Free Content +Key-Value Databases - Wikipedia diff --git a/content/roadmaps/101-backend/content/109-apis/106-graphql.md b/content/roadmaps/101-backend/content/109-apis/106-graphql.md new file mode 100644 index 000000000..b3630a5bd --- /dev/null +++ b/content/roadmaps/101-backend/content/109-apis/106-graphql.md @@ -0,0 +1,12 @@ +# GraphQL + +GraphQL is a query language and runtime system for APIs (application programming interfaces). It is designed to provide a flexible and efficient way for clients to request data from servers, and it is often used as an alternative to REST (representational state transfer) APIs. + +One of the main features of GraphQL is its ability to specify exactly the data that is needed, rather than receiving a fixed set of data from an endpoint. This allows clients to request only the data that they need, and it reduces the amount of data that needs to be transferred over the network. + +GraphQL also provides a way to define the structure of the data that is returned from the server, allowing clients to request data in a predictable and flexible way. This makes it easier to build and maintain client applications that depend on data from the server. + +GraphQL is widely used in modern web and mobile applications, and it is supported by a large and active developer community. + +Free Content +GraphQL Official Website diff --git a/content/roadmaps/101-backend/content/109-scaling-databases/100-database-indexes.md b/content/roadmaps/101-backend/content/109-scaling-databases/100-database-indexes.md new file mode 100644 index 000000000..8f4dc6c30 --- /dev/null +++ b/content/roadmaps/101-backend/content/109-scaling-databases/100-database-indexes.md @@ -0,0 +1,7 @@ +# Database Indexes + +An index is a data structure that you build and assign on top of an existing table that basically looks through your table and tries to analyze and summarize so that it can create shortcuts. + +Free Content +An in-depth look at Database Indexing +Database Indexing Explained diff --git a/content/roadmaps/101-backend/content/109-scaling-databases/101-data-replication.md b/content/roadmaps/101-backend/content/109-scaling-databases/101-data-replication.md new file mode 100644 index 000000000..255ef50e9 --- /dev/null +++ b/content/roadmaps/101-backend/content/109-scaling-databases/101-data-replication.md @@ -0,0 +1,7 @@ +# Data Replication + +Data replication is the process by which data residing on a physical/virtual server(s) or cloud instance (primary instance) is continuously replicated or copied to a secondary server(s) or cloud instance (standby instance). Organizations replicate data to support high availability, backup, and/or disaster recovery. + +Free Content + +What is Data Replication? diff --git a/content/roadmaps/101-backend/content/109-scaling-databases/102-sharding-strategies.md b/content/roadmaps/101-backend/content/109-scaling-databases/102-sharding-strategies.md new file mode 100644 index 000000000..fd03a5dc3 --- /dev/null +++ b/content/roadmaps/101-backend/content/109-scaling-databases/102-sharding-strategies.md @@ -0,0 +1,9 @@ +# Sharding strategies + +Sharding strategy is a technique to split a large dataset into smaller chunks (logical shard) in which we distribute these chunks in different machines/database nodes in order to distribute the traffic load. It’s a good mechanism to improve the scalability of an application. Many databases support sharding, but not all. + +Free Content + +Database Sharding – System Design Interview Concept +Wikipedia - Sharding in Datbase Architectures +How sharding a database can make it faster diff --git a/content/roadmaps/101-backend/content/109-scaling-databases/103-cap-theorem.md b/content/roadmaps/101-backend/content/109-scaling-databases/103-cap-theorem.md new file mode 100644 index 000000000..7f7a22712 --- /dev/null +++ b/content/roadmaps/101-backend/content/109-scaling-databases/103-cap-theorem.md @@ -0,0 +1,10 @@ +# CAP Theorem + +CAP is an acronym that stands for Consistency, Availability and Partition Tolerance. According to CAP theorem, any distributed system can only guarantee two of the three properties at any point of time. You can't guarantee all three properties at once. + +Free Content +What is CAP Theorem? +CAP Theorem - Wikipedia +An Illustrated Proof of the CAP Theorem +CAP Theorem and it's applications in NoSQL Databases +What is CAP Theorem? diff --git a/content/roadmaps/101-backend/content/109-scaling-databases/readme.md b/content/roadmaps/101-backend/content/109-scaling-databases/readme.md new file mode 100644 index 000000000..cd001c442 --- /dev/null +++ b/content/roadmaps/101-backend/content/109-scaling-databases/readme.md @@ -0,0 +1,7 @@ +# Databases + +A database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion. + +Free Content +Oracle: What is a Database? +Prisma.io: What are Databases? diff --git a/content/roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md b/content/roadmaps/101-backend/content/114-design-and-development-principles/103-cqrs.md similarity index 95% rename from content/roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md rename to content/roadmaps/101-backend/content/114-design-and-development-principles/103-cqrs.md index a0ded4d0b..645eafe67 100644 --- a/content/roadmaps/101-backend/content/115-architectural-patterns/103-cqrs.md +++ b/content/roadmaps/101-backend/content/114-design-and-development-principles/103-cqrs.md @@ -1,4 +1,4 @@ -# CQRS and Event Sourcing +# CQRS CQRS, or command query responsibility segregation, defines an architectural pattern where the main focus is to separate the approach of reading and writing operations for a data store. CQRS can also be used along with Event Sourcing pattern in order to persist application state as an ordered of sequence events, making it possible to restore data to any point in time. diff --git a/content/roadmaps/101-backend/content/114-design-and-development-principles/104-event-sourcing.md b/content/roadmaps/101-backend/content/114-design-and-development-principles/104-event-sourcing.md new file mode 100644 index 000000000..4953836b6 --- /dev/null +++ b/content/roadmaps/101-backend/content/114-design-and-development-principles/104-event-sourcing.md @@ -0,0 +1,10 @@ +# Event Sourcing + +Event sourcing is a design pattern in which the state of a system is represented as a sequence of events that have occurred over time. In an event-sourced system, changes to the state of the system are recorded as events and stored in an event store. The current state of the system is derived by replaying the events from the event store. + +One of the main benefits of event sourcing is that it provides a clear and auditable history of all the changes that have occurred in the system. This can be useful for debugging and for tracking the evolution of the system over time. + +Event sourcing is often used in conjunction with other patterns, such as Command Query Responsibility Segregation (CQRS) and domain-driven design, to build scalable and responsive systems with complex business logic. It is also useful for building systems that need to support undo/redo functionality or that need to integrate with external systems. + +Free Content +Event Sourcing - Martin Fowler diff --git a/content/roadmaps/101-backend/content/115-architectural-patterns/105-service-mesh.md b/content/roadmaps/101-backend/content/115-architectural-patterns/105-service-mesh.md new file mode 100644 index 000000000..e4f88d3a9 --- /dev/null +++ b/content/roadmaps/101-backend/content/115-architectural-patterns/105-service-mesh.md @@ -0,0 +1,13 @@ +# Service Mesh + +A service mesh is a network of microservices that are connected using a mesh of interconnected, intelligent proxies. It is used to manage and secure communication between microservices, and it provides features such as load balancing, service discovery, and observability. + +In a service mesh, each microservice is typically represented by an instance of a lightweight, transparent proxy called an "envoy." The envoys handle the communication between microservices and provide features such as load balancing, routing, and security. + +Service meshes are typically implemented using a sidecar pattern, in which the envoys are deployed alongside the microservices they are responsible for. This allows the service mesh to be decoupled from the microservices and makes it easier to manage and update. + +Service meshes are commonly used in cloud-native architectures and are often managed using a control plane, which is responsible for configuring and managing the envoys. Some popular service mesh implementations include Istio and Linkerd. + +Free Content +What is a Service Mesh? +Service Mesh Explained - Cloud Native Computing Foundation (CNCF) diff --git a/content/roadmaps/101-backend/content/115-architectural-patterns/106-twelve-factor-apps.md b/content/roadmaps/101-backend/content/115-architectural-patterns/106-twelve-factor-apps.md new file mode 100644 index 000000000..880149dfc --- /dev/null +++ b/content/roadmaps/101-backend/content/115-architectural-patterns/106-twelve-factor-apps.md @@ -0,0 +1,23 @@ +# Twelve-Factor Apps + +The Twelve-Factor App is a methodology for building scalable and maintainable software-as-a-service (SaaS) applications. It is based on a set of best practices that were identified by the authors of the methodology as being essential for building modern, cloud-native applications. + +The Twelve-Factor App methodology consists of the following principles: + +* Codebase: There should be a single codebase for the application, with multiple deployments. +* Dependencies: The application should explicitly declare and isolate its dependencies. +* Config: The application should store configuration in the environment. +* Backing services: The application should treat backing services as attached resources. +* Build, release, run: The application should be built, released, and run as an isolated unit. +* Processes: The application should be executed as one or more stateless processes. +* Port binding: The application should expose its services through port binding. +* Concurrency: The application should scale out by adding more processes, not by adding threads. +* Disposability: The application should be designed to start and stop quickly. +* Dev/prod parity: The development, staging, and production environments should be as similar as possible. +* Logs: The application should treat logs as event streams. +* Admin processes: The application should run admin/maintenance tasks as one-off processes. + +The Twelve-Factor App methodology is widely adopted by developers of SaaS applications, and it is seen as a best practice for building cloud-native applications that are scalable, maintainable, and easy to deploy. + +Free Content +The Twelve-Factor App diff --git a/content/roadmaps/101-backend/content/118-containerization/101-rkt.md b/content/roadmaps/101-backend/content/118-containerization/101-rkt.md deleted file mode 100644 index 35739b328..000000000 --- a/content/roadmaps/101-backend/content/118-containerization/101-rkt.md +++ /dev/null @@ -1,13 +0,0 @@ -# RKT - -RKT(pronounced like a "rocket") is an application container engine developed for modern production cloud-native environments. It features a pod-native approach, a pluggable execution environment, and a well-defined surface area that makes it ideal for integration with other systems. - - -RKT project was ended in 2018. - -Free Content -RKT Documentation -What is RKT? -What is RKT? -Introduction to RKT -The RKT Container Runtime - Explanation & Demonstration diff --git a/content/roadmaps/101-backend/content/118-containerization/103-kubernetes.md b/content/roadmaps/101-backend/content/118-containerization/103-kubernetes.md new file mode 100644 index 000000000..e08de302d --- /dev/null +++ b/content/roadmaps/101-backend/content/118-containerization/103-kubernetes.md @@ -0,0 +1,12 @@ +# Kubernetes + +Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) container management platform, and the dominant product in this space. Using Kubernetes, teams can deploy images across multiple underlying hosts, defining their desired availability, deployment logic, and scaling logic in YAML. Kubernetes evolved from Borg, an internal Google platform used to provision and allocate compute resources. (similar to the Autopilot and Aquaman systems of Microsoft Azure) + +The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues. + +Free Content +Kubernetes Website +Kubernetes Documentation +Kubernetes Crash Course for Absolute Beginners +Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care +Kubernetes: An Overview diff --git a/content/roadmaps/101-backend/content/122-server-sent-events.md b/content/roadmaps/101-backend/content/122-server-sent-events.md new file mode 100644 index 000000000..512625dfa --- /dev/null +++ b/content/roadmaps/101-backend/content/122-server-sent-events.md @@ -0,0 +1,10 @@ +# Server Sent Events + +Server-Sent Events (SSE) is a technology that allows a web server to push data to a client in real-time. It uses an HTTP connection to send a stream of data from the server to the client, and the client can listen for these events and take action when they are received. + +SSE is useful for applications that require real-time updates, such as chat systems, stock tickers, and social media feeds. It is a simple and efficient way to establish a long-lived connection between a client and a server, and it is supported by most modern web browsers. + +To use SSE, the client must create an EventSource object and specify the URL of the server-side script that will send the events. The server can then send events by writing them to the response stream with the proper formatting. + +Free Content +Server-Sent Events - MDN diff --git a/content/roadmaps/101-backend/content/124-bonus-content.md b/content/roadmaps/101-backend/content/124-bonus-content.md new file mode 100644 index 000000000..fbb5ae2c4 --- /dev/null +++ b/content/roadmaps/101-backend/content/124-bonus-content.md @@ -0,0 +1,5 @@ +# Bonus Content + +Following expands on the topics covered in the roadmap and has the items which were missed in the roadmap. + +* **Regular Expressions**: Regular expressions are a powerful tool for string manipulation. They are used in many programming languages and are a must know for any developer. [RegexOne](https://regexone.com/) is a good place to start learning regular expressions. diff --git a/content/roadmaps/116-aspnet-core/content/114-microservices/102-kubernetes.md b/content/roadmaps/116-aspnet-core/content/114-microservices/102-kubernetes.md index ddf04c9b3..e08de302d 100644 --- a/content/roadmaps/116-aspnet-core/content/114-microservices/102-kubernetes.md +++ b/content/roadmaps/116-aspnet-core/content/114-microservices/102-kubernetes.md @@ -1 +1,12 @@ -# Kubernetes \ No newline at end of file +# Kubernetes + +Kubernetes is an [open source](https://github.com/kubernetes/kubernetes) container management platform, and the dominant product in this space. Using Kubernetes, teams can deploy images across multiple underlying hosts, defining their desired availability, deployment logic, and scaling logic in YAML. Kubernetes evolved from Borg, an internal Google platform used to provision and allocate compute resources. (similar to the Autopilot and Aquaman systems of Microsoft Azure) + +The popularity of Kubernetes has made it an increasingly important skill for the DevOps Engineer and has triggered the creation of Platform teams across the industry. These Platform engineering teams often exist with the sole purpose of making Kubernetes approachable and usable for their product development colleagues. + +Free Content +Kubernetes Website +Kubernetes Documentation +Kubernetes Crash Course for Absolute Beginners +Primer: How Kubernetes Came to Be, What It Is, and Why You Should Care +Kubernetes: An Overview diff --git a/public/project/backend.json b/public/project/backend.json index b3be9eb9d..4340768c5 100644 --- a/public/project/backend.json +++ b/public/project/backend.json @@ -2,139 +2,16 @@ "mockup": { "controls": { "control": [ - { - "ID": "14051", - "typeID": "Arrow", - "zOrder": "1", - "w": "62", - "h": "114", - "measuredW": "150", - "measuredH": "100", - "x": "957", - "y": "1246", - "properties": { - "color": "2848996", - "curvature": "1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 61, - "y": 113 - }, - "p1": { - "x": 0.4724095467073242, - "y": 0.05641236146132645 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14052", - "typeID": "Arrow", - "zOrder": "2", - "w": "52", - "h": "68", - "measuredW": "150", - "measuredH": "100", - "x": "966", - "y": "1245", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 51, - "y": 67 - }, - "p1": { - "x": 0.5053615617266979, - "y": -0.006323893318669233 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14053", - "typeID": "Arrow", - "zOrder": "3", - "w": "65", - "h": "39", - "measuredW": "150", - "measuredH": "100", - "x": "956", - "y": "1229", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 64, - "y": 38 - }, - "p1": { - "x": 0.5053615617266979, - "y": -0.006323893318669233 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14054", - "typeID": "Arrow", - "zOrder": "4", - "w": "88", - "h": "20", - "measuredW": "150", - "measuredH": "100", - "x": "1025", - "y": "1624", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 20 - }, - "p1": { - "x": 0.48230378246905115, - "y": 0.08955689294957749 - }, - "p2": { - "x": 87.5, - "y": 1 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, { "ID": "14055", "typeID": "Arrow", - "zOrder": "5", + "zOrder": "69", "w": "116", "h": "68", "measuredW": "150", "measuredH": "100", - "x": "870", - "y": "2930", + "x": "1348", + "y": "3863", "properties": { "color": "2848996", "direction": "bottom", @@ -158,13 +35,13 @@ { "ID": "14056", "typeID": "Arrow", - "zOrder": "6", + "zOrder": "70", "w": "133", "h": "34", "measuredW": "150", "measuredH": "100", - "x": "860", - "y": "2920", + "x": "1338", + "y": "3853", "properties": { "color": "2848996", "direction": "bottom", @@ -188,13 +65,13 @@ { "ID": "14057", "typeID": "Arrow", - "zOrder": "7", + "zOrder": "71", "w": "2", "h": "89", "measuredW": "150", "measuredH": "100", - "x": "747", - "y": "3143", + "x": "1231", + "y": "4196", "properties": { "color": "2848996", "curvature": "0", @@ -218,25 +95,25 @@ { "ID": "14058", "typeID": "Arrow", - "zOrder": "8", - "w": "2", - "h": "166", + "zOrder": "72", + "w": "3", + "h": "294", "measuredW": "150", "measuredH": "100", - "x": "753", - "y": "2964", + "x": "1231", + "y": "3897", "properties": { "color": "2848996", "curvature": "0", "leftArrow": "false", "rightArrow": "false", "p0": { - "x": 1, - "y": 166 + "x": 2.3488651564201746, + "y": 293.9847889101875 }, "p1": { - "x": 0.4072427393330943, - "y": 0.009537468626747932 + "x": 0.40724273933309424, + "y": 0.00953746862674793 }, "p2": { "x": 2.3488651564201746, @@ -247,13 +124,13 @@ { "ID": "14059", "typeID": "__group__", - "zOrder": "9", + "zOrder": "73", "measuredW": "207", "measuredH": "50", "w": "207", "h": "50", - "x": "652", - "y": "3114", + "x": "1130", + "y": "4167", "properties": { "controlName": "ext_link:google.com" }, @@ -294,13 +171,13 @@ { "ID": "14060", "typeID": "Arrow", - "zOrder": "10", + "zOrder": "74", "w": "131", "h": "1", "measuredW": "150", "measuredH": "100", - "x": "870", - "y": "2910", + "x": "1348", + "y": "3843", "properties": { "color": "2848996", "direction": "bottom", @@ -324,13 +201,13 @@ { "ID": "14061", "typeID": "Arrow", - "zOrder": "11", + "zOrder": "75", "w": "71", "h": "11", "measuredW": "150", "measuredH": "100", - "x": "276", - "y": "2930", + "x": "754", + "y": "3863", "properties": { "color": "2848996", "direction": "bottom", @@ -354,13 +231,13 @@ { "ID": "14062", "typeID": "Arrow", - "zOrder": "12", + "zOrder": "76", "w": "71", "h": "31", "measuredW": "150", "measuredH": "100", - "x": "275", - "y": "2932", + "x": "753", + "y": "3865", "properties": { "color": "2848996", "direction": "bottom", @@ -384,13 +261,13 @@ { "ID": "14063", "typeID": "Arrow", - "zOrder": "13", + "zOrder": "77", "w": "64", "h": "17", "measuredW": "150", "measuredH": "100", - "x": "276", - "y": "2914", + "x": "754", + "y": "3847", "properties": { "color": "2848996", "direction": "bottom", @@ -414,13 +291,13 @@ { "ID": "14064", "typeID": "Arrow", - "zOrder": "14", + "zOrder": "78", "w": "81", "h": "52", "measuredW": "150", "measuredH": "100", - "x": "258", - "y": "2811", + "x": "736", + "y": "3744", "properties": { "color": "2848996", "direction": "bottom", @@ -444,13 +321,13 @@ { "ID": "14065", "typeID": "Arrow", - "zOrder": "15", + "zOrder": "79", "w": "87", "h": "35", "measuredW": "150", "measuredH": "100", - "x": "256", - "y": "2752", + "x": "734", + "y": "3685", "properties": { "color": "2848996", "direction": "bottom", @@ -474,13 +351,13 @@ { "ID": "14066", "typeID": "Arrow", - "zOrder": "16", + "zOrder": "80", "w": "88", "h": "39", "measuredW": "150", "measuredH": "100", - "x": "258", - "y": "2799", + "x": "736", + "y": "3732", "properties": { "color": "2848996", "direction": "bottom", @@ -504,13 +381,13 @@ { "ID": "14067", "typeID": "Arrow", - "zOrder": "17", + "zOrder": "81", "w": "92", "h": "15", "measuredW": "150", "measuredH": "100", - "x": "258", - "y": "2795", + "x": "736", + "y": "3728", "properties": { "color": "2848996", "direction": "bottom", @@ -534,13 +411,13 @@ { "ID": "14068", "typeID": "Arrow", - "zOrder": "18", + "zOrder": "82", "w": "84", "h": "11", "measuredW": "150", "measuredH": "100", - "x": "257", - "y": "2781", + "x": "735", + "y": "3714", "properties": { "color": "2848996", "direction": "bottom", @@ -564,13 +441,13 @@ { "ID": "14069", "typeID": "Arrow", - "zOrder": "19", + "zOrder": "83", "w": "131", "h": "2", "measuredW": "150", "measuredH": "100", - "x": "482", - "y": "2934", + "x": "960", + "y": "3867", "properties": { "color": "2848996", "direction": "bottom", @@ -594,13 +471,13 @@ { "ID": "14070", "typeID": "Arrow", - "zOrder": "20", + "zOrder": "84", "w": "83", "h": "112", "measuredW": "150", "measuredH": "100", - "x": "521", - "y": "2800", + "x": "999", + "y": "3733", "properties": { "color": "2848996", "direction": "bottom", @@ -624,13 +501,13 @@ { "ID": "14071", "typeID": "__group__", - "zOrder": "21", + "zOrder": "85", "measuredW": "342", "measuredH": "127", "w": "342", "h": "127", - "x": "958", - "y": "2978", + "x": "1436", + "y": "3911", "properties": { "controlName": "104-scalability:observability" }, @@ -745,13 +622,13 @@ { "ID": "14072", "typeID": "Arrow", - "zOrder": "22", + "zOrder": "86", "w": "35", "h": "95", "measuredW": "150", "measuredH": "100", - "x": "822", - "y": "2774", + "x": "1300", + "y": "3707", "properties": { "color": "2848996", "direction": "bottom", @@ -774,13 +651,13 @@ { "ID": "14073", "typeID": "Arrow", - "zOrder": "23", + "zOrder": "87", "w": "162", "h": "1", "measuredW": "150", "measuredH": "100", - "x": "643", - "y": "2762", + "x": "769", + "y": "3468", "properties": { "color": "2848996", "direction": "bottom", @@ -797,303 +674,67 @@ "x": 0, "y": 0.5 }, - "rightArrow": "false" - } - }, - { - "ID": "14074", - "typeID": "Arrow", - "zOrder": "24", - "w": "2", - "h": "80", - "measuredW": "150", - "measuredH": "100", - "x": "1098", - "y": "2149", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.465256538516507, - "y": 0.0007431756467057328 - }, - "p2": { - "x": 2, - "y": 80 - }, "rightArrow": "false", "stroke": "dotted" } }, { - "ID": "14075", - "typeID": "Arrow", - "zOrder": "25", - "w": "88", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "831", - "y": "2157", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 88, - "y": -0.5 - }, - "p1": { - "x": 0.50296668188042, - "y": 0.0027384755819260557 - }, - "p2": { - "x": 0, - "y": -0.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14078", - "typeID": "Arrow", - "zOrder": "26", - "w": "108", - "h": "80", - "measuredW": "150", - "measuredH": "100", - "x": "669", - "y": "2073", + "ID": "14086", + "typeID": "__group__", + "zOrder": "88", + "measuredW": "246", + "measuredH": "50", + "w": "246", + "h": "50", + "x": "1110", + "y": "2874", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 108, - "y": 79.5 - }, - "p1": { - "x": 0.5603029663253457, - "y": -0.07492346669481689 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false" + "controlName": "115-architectural-patterns" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "246", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "166", + "measuredH": "25", + "x": "40", + "y": "13", + "properties": { + "text": "Architectural Patterns", + "size": "17" + } + } + ] + } } }, { - "ID": "14080", - "typeID": "Arrow", - "zOrder": "27", - "w": "67", - "h": "36", - "measuredW": "150", - "measuredH": "100", - "x": "472", - "y": "1807", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0.5 - }, - "p1": { - "x": 0.3904422315954255, - "y": 0.08001043614384486 - }, - "p2": { - "x": 67, - "y": 36 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14081", - "typeID": "Arrow", - "zOrder": "28", - "w": "103", - "h": "46", - "measuredW": "150", - "measuredH": "100", - "x": "424", - "y": "2152", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 103, - "y": -0.5 - }, - "p1": { - "x": 0.4965025071914738, - "y": -0.0092742505933948 - }, - "p2": { - "x": 0, - "y": 45.5 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14082", - "typeID": "Arrow", - "zOrder": "29", - "w": "121", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "407", - "y": "2148", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 121, - "y": -0.5 - }, - "p1": { - "x": 0.5411972474270752, - "y": 0.004810912855489929 - }, - "p2": { - "x": 0, - "y": 3 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14083", - "typeID": "Arrow", - "zOrder": "30", - "w": "107", - "h": "38", - "measuredW": "150", - "measuredH": "100", - "x": "421", - "y": "2106", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 107, - "y": 37.5 - }, - "p1": { - "x": 0.5259135372707648, - "y": -0.007273293012582408 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14085", - "typeID": "Arrow", - "zOrder": "31", - "w": "101", - "h": "83", - "measuredW": "150", - "measuredH": "100", - "x": "692", - "y": "2224", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.4277687344018659, - "y": 82.57328000144571 - }, - "p1": { - "x": 0.4773388773388785, - "y": -0.20519750519750382 - }, - "p2": { - "x": 100.84292409061823, - "y": -0.042285197912860895 - } - } - }, - { - "ID": "14086", - "typeID": "__group__", - "zOrder": "32", - "measuredW": "317", - "measuredH": "50", - "w": "317", - "h": "50", - "x": "907", - "y": "2131", - "properties": { - "controlName": "115-architectural-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "317", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "166", - "measuredH": "25", - "x": "76", - "y": "13", - "properties": { - "text": "Architectural Patterns", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "14087", - "typeID": "__group__", - "zOrder": "33", - "measuredW": "253", - "measuredH": "48", - "w": "253", - "h": "48", - "x": "978", - "y": "2191", + "ID": "14087", + "typeID": "__group__", + "zOrder": "89", + "measuredW": "253", + "measuredH": "40", + "w": "253", + "h": "40", + "x": "1459", + "y": "2877", "properties": { "controlName": "100-architectural-patterns:monolithic-apps" }, @@ -1109,7 +750,7 @@ "measuredW": "200", "measuredH": "140", "x": "0", - "y": "8", + "y": "0", "properties": { "color": "16770457" } @@ -1122,7 +763,7 @@ "measuredW": "123", "measuredH": "25", "x": "60", - "y": "16", + "y": "7", "properties": { "size": "17", "text": "Monolithic Apps" @@ -1135,7 +776,7 @@ "measuredW": "24", "measuredH": "24", "x": "229", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -1151,7 +792,7 @@ "measuredW": "24", "measuredH": "24", "x": "229", - "y": "0", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -1167,13 +808,13 @@ { "ID": "14088", "typeID": "__group__", - "zOrder": "34", + "zOrder": "90", "measuredW": "253", - "measuredH": "41", + "measuredH": "37", "w": "253", - "h": "41", - "x": "978", - "y": "2240", + "h": "37", + "x": "1459", + "y": "2923", "properties": { "controlName": "101-architectural-patterns:microservices" }, @@ -1189,7 +830,7 @@ "measuredW": "200", "measuredH": "140", "x": "0", - "y": "4", + "y": "0", "properties": { "color": "16770457" } @@ -1202,7 +843,7 @@ "measuredW": "108", "measuredH": "25", "x": "66", - "y": "11", + "y": "6", "properties": { "size": "17", "text": "Microservices" @@ -1215,7 +856,7 @@ "measuredW": "24", "measuredH": "24", "x": "229", - "y": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -1231,7 +872,7 @@ "measuredW": "24", "measuredH": "24", "x": "229", - "y": "0", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -1245,17 +886,46 @@ } }, { - "ID": "14089", + "ID": "14091", + "typeID": "Arrow", + "zOrder": "91", + "w": "134", + "h": "125", + "measuredW": "150", + "measuredH": "100", + "x": "1032", + "y": "3131", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.33779436398822327, + "y": 124.85818558991332 + }, + "p1": { + "x": 0.5130035437946617, + "y": -0.1946619587780869 + }, + "p2": { + "x": 133.57223126559813, + "y": -0.10162883736757067 + } + } + }, + { + "ID": "14093", "typeID": "__group__", - "zOrder": "35", - "measuredW": "256", + "zOrder": "271", + "measuredW": "167", "measuredH": "40", - "w": "256", + "w": "167", "h": "40", - "x": "977", - "y": "2323", + "x": "1125", + "y": "2992", "properties": { - "controlName": "103-architectural-patterns:cqrs" + "controlName": "100-search-engines:elasticsearch" }, "children": { "controls": { @@ -1264,12 +934,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "245", - "h": "37", + "w": "160", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "3", + "x": "7", + "y": "0", "properties": { "color": "16770457" } @@ -1278,14 +948,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "209", - "measuredW": "202", + "w": "106", + "measuredW": "104", "measuredH": "25", - "x": "18", - "y": "9", + "x": "39", + "y": "8", "properties": { "size": "17", - "text": "CQRS and Event Sourcing" + "text": "Elasticsearch" } }, { @@ -1294,8 +964,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "232", - "y": "0", + "x": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -1310,10 +980,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "232", - "y": "0", + "x": "0", + "y": "7", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -1325,125 +995,17 @@ } }, { - "ID": "14090", - "typeID": "Arrow", - "zOrder": "36", - "w": "85", - "h": "22", - "measuredW": "150", - "measuredH": "100", - "x": "329", - "y": "2287", + "ID": "14094", + "typeID": "__group__", + "zOrder": "272", + "measuredW": "167", + "measuredH": "40", + "w": "167", + "h": "40", + "x": "1125", + "y": "3038", "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 85.33121026030528, - "y": 20.916916049961856 - }, - "p1": { - "x": 0.5244042630304266, - "y": 0.09061322266059196 - }, - "p2": { - "x": 0.05062682870931212, - "y": -0.40322980793689567 - } - } - }, - { - "ID": "14091", - "typeID": "Arrow", - "zOrder": "37", - "w": "128", - "h": "116", - "measuredW": "150", - "measuredH": "100", - "x": "692", - "y": "2320", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 128, - "y": 116 - }, - "p1": { - "x": 0.4711861368885512, - "y": -0.2426939323072945 - }, - "p2": { - "x": -0.4277687344018659, - "y": -0.10162883736757067 - } - } - }, - { - "ID": "14092", - "typeID": "__group__", - "zOrder": "38", - "measuredW": "313", - "measuredH": "50", - "w": "313", - "h": "50", - "x": "404", - "y": "2289", - "properties": { - "controlName": "116-search-engines" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "313", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "126", - "measuredW": "122", - "measuredH": "25", - "x": "94", - "y": "12", - "properties": { - "size": "17", - "text": "Search Engines" - } - } - ] - } - } - }, - { - "ID": "14093", - "typeID": "__group__", - "zOrder": "39", - "measuredW": "167", - "measuredH": "40", - "w": "167", - "h": "40", - "x": "168", - "y": "2272", - "properties": { - "controlName": "100-search-engines:elasticsearch" + "controlName": "101-search-engines:solr" }, "children": { "controls": { @@ -1466,14 +1028,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "106", - "measuredW": "104", + "w": "36", + "measuredW": "30", "measuredH": "25", - "x": "39", + "x": "69", "y": "8", "properties": { "size": "17", - "text": "Elasticsearch" + "text": "Solr" } }, { @@ -1483,7 +1045,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "7", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -1499,9 +1061,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "7", + "y": "8", "properties": { - "color": "10027263", + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -1513,17 +1075,17 @@ } }, { - "ID": "14094", + "ID": "14095", "typeID": "__group__", - "zOrder": "40", - "measuredW": "167", - "measuredH": "40", - "w": "167", - "h": "40", - "x": "168", - "y": "2316", + "zOrder": "92", + "measuredW": "253", + "measuredH": "37", + "w": "253", + "h": "37", + "x": "1459", + "y": "2966", "properties": { - "controlName": "101-search-engines:solr" + "controlName": "102-architectural-patterns:soa" }, "children": { "controls": { @@ -1532,11 +1094,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "160", - "h": "40", + "w": "244", + "h": "37", "measuredW": "200", "measuredH": "140", - "x": "7", + "x": "0", "y": "0", "properties": { "color": "16770457" @@ -1546,14 +1108,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "36", - "measuredW": "30", + "w": "38", + "measuredW": "34", "measuredH": "25", - "x": "69", - "y": "8", + "x": "103", + "y": "6", "properties": { "size": "17", - "text": "Solr" + "text": "SOA" } }, { @@ -1562,8 +1124,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "229", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -1578,10 +1140,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "8", + "x": "229", + "y": "7", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -1593,17 +1155,17 @@ } }, { - "ID": "14095", + "ID": "14114", "typeID": "__group__", - "zOrder": "41", - "measuredW": "253", - "measuredH": "41", - "w": "253", - "h": "41", - "x": "978", - "y": "2281", + "zOrder": "93", + "measuredW": "221", + "measuredH": "50", + "w": "221", + "h": "50", + "x": "843", + "y": "3232", "properties": { - "controlName": "102-architectural-patterns:soa" + "controlName": "117-message-brokers" }, "children": { "controls": { @@ -1612,60 +1174,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "244", - "h": "37", + "w": "221", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "4", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "38", - "measuredW": "34", + "w": "141", + "measuredW": "136", "measuredH": "25", - "x": "103", - "y": "11", + "x": "40", + "y": "12", "properties": { "size": "17", - "text": "SOA" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "229", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "229", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Message Brokers" } } ] @@ -1673,77 +1203,17 @@ } }, { - "ID": "14096", - "typeID": "Arrow", - "zOrder": "42", - "w": "4", - "h": "109", - "measuredW": "150", - "measuredH": "100", - "x": "618", - "y": "2650", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 4, - "y": -0.5 - }, - "p1": { - "x": 0.5130929473772274, - "y": -0.0344683343093784 - }, - "p2": { - "x": 3, - "y": 108.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14097", - "typeID": "Arrow", - "zOrder": "43", - "w": "96", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "414", - "y": "2642", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 96, - "y": -0.5 - }, - "p1": { - "x": 0.6163558106169299, - "y": 0.017503586800573956 - }, - "p2": { - "x": 0, - "y": 2 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14098", + "ID": "14115", "typeID": "__group__", - "zOrder": "44", - "measuredW": "150", - "measuredH": "48", - "w": "150", - "h": "48", - "x": "273", - "y": "2615", + "zOrder": "94", + "measuredW": "305", + "measuredH": "50", + "w": "305", + "h": "50", + "x": "1160", + "y": "3241", "properties": { - "controlName": "100-graph-databases:neo4j" + "controlName": "118-containerization" }, "children": { "controls": { @@ -1752,28 +1222,122 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "144", - "h": "40", + "w": "305", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "8", + "x": "0", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "51", - "measuredW": "47", + "measuredW": "250", "measuredH": "25", - "x": "52", - "y": "16", + "x": "28", + "y": "13", "properties": { - "size": "17", - "text": "Neo4j" + "text": "Containerization vs Virtualization", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "14116", + "typeID": "__group__", + "zOrder": "95", + "measuredW": "197", + "measuredH": "50", + "w": "197", + "h": "50", + "x": "930", + "y": "3433", + "properties": { + "controlName": "122-web-servers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "197", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "98", + "measuredH": "25", + "x": "50", + "y": "13", + "properties": { + "text": "Web Servers", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "14117", + "typeID": "__group__", + "zOrder": "96", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "671", + "y": "3313", + "properties": { + "controlName": "100-web-servers:nginx" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "144", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "46", + "measuredW": "45", + "measuredH": "25", + "x": "58", + "y": "7", + "properties": { + "size": "17", + "text": "Nginx" } }, { @@ -1783,7 +1347,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -1799,9 +1363,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -1813,441 +1377,169 @@ } }, { - "ID": "14099", - "typeID": "Arrow", - "zOrder": "45", - "w": "120", - "h": "29", - "measuredW": "150", - "measuredH": "100", - "x": "871", - "y": "2557", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 119.5, - "y": 0 - }, - "p1": { - "x": 0.6629629629629628, - "y": -0.06296296296296298 - }, - "p2": { - "x": 0, - "y": 29 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14100", - "typeID": "Arrow", - "zOrder": "46", - "w": "121", - "h": "13", - "measuredW": "150", - "measuredH": "100", - "x": "869", - "y": "2590", + "ID": "14118", + "typeID": "__group__", + "zOrder": "97", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "671", + "y": "3358", "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 120.5, - "y": 11 - }, - "p1": { - "x": 0.567277856135402, - "y": 0.05867418899858959 - }, - "p2": { - "x": -0.5, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "101-web-servers:apache" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "144", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "60", + "measuredW": "59", + "measuredH": "25", + "x": "51", + "y": "7", + "properties": { + "size": "17", + "text": "Apache" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14101", - "typeID": "Arrow", - "zOrder": "47", - "w": "188", - "h": "66", - "measuredW": "150", - "measuredH": "100", - "x": "639", - "y": "2579", + "ID": "14119", + "typeID": "__group__", + "zOrder": "98", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "671", + "y": "3404", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 62 - }, - "p1": { - "x": 0.4529742373542121, - "y": -0.12147103732822194 - }, - "p2": { - "x": 187, - "y": 0 - }, - "rightArrow": "false" - } - }, - { - "ID": "14102", - "typeID": "Arrow", - "zOrder": "48", - "w": "75", - "h": "25", - "measuredW": "150", - "measuredH": "100", - "x": "331", - "y": "2482", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 75, - "y": 25 - }, - "p1": { - "x": 0.6629629629629629, - "y": -0.06296296296296301 - }, - "p2": { - "x": 0, - "y": 1 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14103", - "typeID": "Arrow", - "zOrder": "49", - "w": "78", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "330", - "y": "2518", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 78, - "y": 0 - }, - "p1": { - "x": 0.6163558106169298, - "y": 0.017503586800573952 - }, - "p2": { - "x": 0, - "y": 3 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14104", - "typeID": "Arrow", - "zOrder": "50", - "w": "199", - "h": "84", - "measuredW": "150", - "measuredH": "100", - "x": "905", - "y": "2765", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 199, - "y": 84 - }, - "p1": { - "x": 0.4955621301775147, - "y": 0.03934911242603547 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14105", - "typeID": "Arrow", - "zOrder": "51", - "w": "199", - "h": "42", - "measuredW": "150", - "measuredH": "100", - "x": "907", - "y": "2766", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 199, - "y": 42 - }, - "p1": { - "x": 0.4825515947467167, - "y": 0.004502814258911812 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14106", - "typeID": "Arrow", - "zOrder": "52", - "w": "196", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "914", - "y": "2756", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 196, - "y": 5 - }, - "p1": { - "x": 0.4695991671004685, - "y": -0.020718375845913583 - }, - "p2": { - "x": 0, - "y": 3 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14107", - "typeID": "Arrow", - "zOrder": "53", - "w": "197", - "h": "42", - "measuredW": "150", - "measuredH": "100", - "x": "912", - "y": "2716", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 197, - "y": 2 - }, - "p1": { - "x": 0.44620243269441234, - "y": -0.0644132453644352 - }, - "p2": { - "x": 0, - "y": 42 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14108", - "typeID": "Arrow", - "zOrder": "54", - "w": "199", - "h": "54", - "measuredW": "150", - "measuredH": "100", - "x": "560", - "y": "2527", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 199, - "y": 48 - }, - "p1": { - "x": 0.6485783579517326, - "y": 0.15106944331292413 - }, - "p2": { - "x": 0, - "y": -0.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14109", - "typeID": "Arrow", - "zOrder": "55", - "w": "192", - "h": "55", - "measuredW": "150", - "measuredH": "100", - "x": "546", - "y": "2457", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 55.5 - }, - "p1": { - "x": 0.432369591589163, - "y": 0.09644156894460168 - }, - "p2": { - "x": 192, - "y": 0.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14110", - "typeID": "Arrow", - "zOrder": "56", - "w": "149", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "896", - "y": "2461", - "properties": { - "color": "2848996", - "curvature": "0", - "leftArrow": "false", - "p0": { - "x": 149, - "y": 14 - }, - "p1": { - "x": 0.47363590855998655, - "y": -0.003754380110128476 - }, - "p2": { - "x": 0, - "y": -0.5 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14111", - "typeID": "Arrow", - "zOrder": "57", - "w": "106", - "h": "9", - "measuredW": "150", - "measuredH": "100", - "x": "930", - "y": "2442", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 106, - "y": 0 - }, - "p1": { - "x": 0.42286675073560326, - "y": 0.002311895754518704 - }, - "p2": { - "x": 0, - "y": 8.5 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14112", - "typeID": "__group__", - "zOrder": "58", - "measuredW": "192", - "measuredH": "42", - "w": "192", - "h": "42", - "x": "1026", - "y": "2413", - "properties": { - "controlName": "100-message-brokers:rabbitmq" + "controlName": "102-web-servers:caddy" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "183", - "measuredW": "97", - "measuredH": "32", - "x": "0", - "y": "10", + "w": "144", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "RabbitMQ" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", + "w": "53", + "measuredW": "49", + "measuredH": "25", + "x": "54", + "y": "7", + "properties": { + "size": "17", + "text": "Caddy" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "168", - "y": "1", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2256,18 +1548,82 @@ } } }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "14120", + "typeID": "__group__", + "zOrder": "99", + "measuredW": "152", + "measuredH": "40", + "w": "152", + "h": "40", + "x": "672", + "y": "3449", + "properties": { + "controlName": "103-web-servers:ms-iis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "144", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "55", + "measuredW": "51", + "measuredH": "25", + "x": "57", + "y": "7", + "properties": { + "size": "17", + "text": "MS IIS" + } + }, { "ID": "2", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "168", - "y": "1", + "x": "0", + "y": "8", "properties": { - "color": "10027263", + "color": "16777215", "icon": { - "ID": "check-circle", + "ID": "circle", "size": "small" } } @@ -2278,8 +1634,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "145", - "y": "0", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2294,10 +1650,10 @@ "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "145", - "y": "0", + "x": "0", + "y": "8", "properties": { - "color": "10066329", + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -2309,51 +1665,47 @@ } }, { - "ID": "14113", + "ID": "14121", "typeID": "__group__", - "zOrder": "59", - "measuredW": "193", - "measuredH": "37", - "w": "193", - "h": "37", - "x": "1026", - "y": "2454", + "zOrder": "100", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "1540", + "y": "3199", "properties": { - "controlName": "101-message-brokers:kafka" + "controlName": "100-containerization:docker" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "183", - "measuredW": "60", - "measuredH": "32", + "w": "144", + "h": "40", + "measuredW": "200", + "measuredH": "140", "x": "0", - "y": "5", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "Kafka" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "169", - "y": "0", + "w": "58", + "measuredW": "56", + "measuredH": "25", + "x": "47", + "y": "8", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "Docker" } }, { @@ -2362,8 +1714,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "169", - "y": "0", + "x": "130", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2378,10 +1730,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "169", - "y": "0", + "x": "130", + "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -2393,17 +1745,17 @@ } }, { - "ID": "14114", + "ID": "14122", "typeID": "__group__", - "zOrder": "60", - "measuredW": "230", - "measuredH": "60", - "w": "230", - "h": "60", - "x": "721", - "y": "2423", + "zOrder": "101", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "1540", + "y": "3244", "properties": { - "controlName": "117-message-brokers" + "controlName": "102-containerization:lxc" }, "children": { "controls": { @@ -2412,28 +1764,30 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "221", - "h": "50", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "10", + "y": "0", "properties": { - "color": "16776960" + "textColor": "6710886", + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "141", - "measuredW": "136", + "w": "37", + "measuredW": "32", "measuredH": "25", - "x": "40", - "y": "22", + "x": "53", + "y": "8", "properties": { + "color": "3355443", "size": "17", - "text": "Message Brokers" + "text": "LXC" } }, { @@ -2442,8 +1796,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "206", - "y": "0", + "x": "130", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2458,14 +1812,14 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "206", - "y": "0", + "x": "130", + "y": "8", "properties": { - "color": "10066329", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "40463" } } ] @@ -2473,17 +1827,17 @@ } }, { - "ID": "14115", + "ID": "14123", "typeID": "__group__", - "zOrder": "61", - "measuredW": "294", + "zOrder": "102", + "measuredW": "114", "measuredH": "50", - "w": "294", + "w": "114", "h": "50", - "x": "403", - "y": "2490", + "x": "1353", + "y": "3327", "properties": { - "controlName": "118-containerization" + "controlName": "119-graphql" }, "children": { "controls": { @@ -2492,7 +1846,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "294", + "w": "114", "h": "50", "measuredW": "200", "measuredH": "140", @@ -2506,12 +1860,12 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "250", + "measuredW": "71", "measuredH": "25", - "x": "22", + "x": "21", "y": "13", "properties": { - "text": "Containerization vs Virtualization", + "text": "GraphQL", "size": "17" } } @@ -2520,17 +1874,17 @@ } }, { - "ID": "14116", + "ID": "14124", "typeID": "__group__", - "zOrder": "62", - "measuredW": "170", - "measuredH": "62", - "w": "170", - "h": "62", - "x": "770", - "y": "2724", + "zOrder": "103", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "1541", + "y": "3327", "properties": { - "controlName": "122-web-servers" + "controlName": "100-graphql:apollo" }, "children": { "controls": { @@ -2539,27 +1893,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "163", - "h": "50", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "12", + "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "98", + "w": "50", + "measuredW": "48", "measuredH": "25", - "x": "33", - "y": "25", + "x": "47", + "y": "7", "properties": { - "text": "Web Servers", - "size": "17" + "size": "17", + "text": "Apollo" } }, { @@ -2568,8 +1923,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "146", - "y": "0", + "x": "131", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2584,10 +1939,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "146", - "y": "0", + "x": "131", + "y": "8", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -2599,17 +1954,17 @@ } }, { - "ID": "14117", + "ID": "14125", "typeID": "__group__", - "zOrder": "63", - "measuredW": "152", - "measuredH": "49", - "w": "152", - "h": "49", - "x": "1073", - "y": "2686", + "zOrder": "104", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "1541", + "y": "3373", "properties": { - "controlName": "100-web-servers:nginx" + "controlName": "101-graphql:relay-modern" }, "children": { "controls": { @@ -2623,7 +1978,7 @@ "measuredW": "200", "measuredH": "140", "x": "0", - "y": "9", + "y": "0", "properties": { "color": "16770457" } @@ -2632,14 +1987,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "46", - "measuredW": "45", + "w": "108", + "measuredW": "107", "measuredH": "25", - "x": "49", - "y": "17", + "x": "18", + "y": "7", "properties": { "size": "17", - "text": "Nginx" + "text": "Relay Modern" } }, { @@ -2648,8 +2003,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", + "x": "129", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2664,24 +2019,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "102", - "y": "0", + "x": "129", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -2691,15 +2030,15 @@ } }, { - "ID": "5", + "ID": "4", "typeID": "Icon", - "zOrder": "5", + "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "102", - "y": "0", + "x": "129", + "y": "8", "properties": { - "color": "10066329", + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -2711,17 +2050,17 @@ } }, { - "ID": "14118", + "ID": "14127", "typeID": "__group__", - "zOrder": "64", - "measuredW": "152", - "measuredH": "44", - "w": "152", - "h": "44", - "x": "1073", - "y": "2737", + "zOrder": "105", + "measuredW": "167", + "measuredH": "50", + "w": "167", + "h": "50", + "x": "1152", + "y": "3333", "properties": { - "controlName": "101-web-servers:apache" + "controlName": "121-web-sockets" }, "children": { "controls": { @@ -2730,28 +2069,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "144", - "h": "40", + "w": "159", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "4", + "x": "8", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "60", - "measuredW": "59", + "measuredW": "95", "measuredH": "25", - "x": "42", + "x": "40", "y": "12", "properties": { - "size": "17", - "text": "Apache" + "text": "WebSockets", + "size": "17" } }, { @@ -2760,8 +2098,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", + "x": "0", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -2776,30 +2114,14 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "128", - "y": "0", + "x": "0", + "y": "13", "properties": { - "color": "3700253", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -2807,73 +2129,145 @@ } }, { - "ID": "14119", + "ID": "14129", + "typeID": "Arrow", + "zOrder": "106", + "w": "1", + "h": "55", + "measuredW": "150", + "measuredH": "100", + "x": "1288", + "y": "2643", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 54.98738859570176 + }, + "p1": { + "x": 0.5702216182256715, + "y": -0.004517251466967863 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 + } + } + }, + { + "ID": "14134", + "typeID": "Arrow", + "zOrder": "27", + "w": "77", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "1389", + "y": "2489", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.21591400526199322, + "y": 1.098756097270325 + }, + "p1": { + "x": 0.5633394785356863, + "y": -0.0021069265209375837 + }, + "p2": { + "x": 76.92562063543369, + "y": -0.5 + } + } + }, + { + "ID": "14137", + "typeID": "Arrow", + "zOrder": "107", + "w": "1", + "h": "74", + "measuredW": "150", + "measuredH": "100", + "x": "766", + "y": "2260", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4699266503667479, + "y": -0.0004889975550122329 + }, + "p2": { + "x": 0, + "y": 73.87582822107333 + } + } + }, + { + "ID": "14138", + "typeID": "TextArea", + "zOrder": "108", + "w": "209", + "h": "280", + "measuredW": "200", + "measuredH": "140", + "x": "665", + "y": "2305" + }, + { + "ID": "14139", "typeID": "__group__", - "zOrder": "65", - "measuredW": "152", - "measuredH": "44", - "w": "152", - "h": "44", - "x": "1073", - "y": "2782", + "zOrder": "109", + "measuredW": "188", + "measuredH": "32", + "w": "188", + "h": "32", + "x": "673", + "y": "2355", "properties": { - "controlName": "102-web-servers:caddy" + "controlName": "101-apis:authentication:oauth" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "TextInput", "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "4", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "53", - "measuredW": "49", - "measuredH": "25", - "x": "45", - "y": "12", - "properties": { - "size": "17", - "text": "Caddy" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "128", + "w": "181", + "measuredW": "64", + "measuredH": "32", + "x": "7", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "align": "center", + "color": "16770457", + "text": "OAuth", + "size": "18" } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", + "x": "0", + "y": "4", "properties": { "color": "16777215", "icon": { @@ -2883,15 +2277,15 @@ } }, { - "ID": "4", + "ID": "2", "typeID": "Icon", - "zOrder": "4", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", + "x": "0", + "y": "4", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -2903,73 +2297,45 @@ } }, { - "ID": "14120", + "ID": "14140", "typeID": "__group__", - "zOrder": "66", - "measuredW": "152", - "measuredH": "44", - "w": "152", - "h": "44", - "x": "1073", - "y": "2826", + "zOrder": "110", + "measuredW": "188", + "measuredH": "32", + "w": "188", + "h": "32", + "x": "673", + "y": "2392", "properties": { - "controlName": "103-web-servers:ms-iis" + "controlName": "102-apis:authentication:basic-authentication" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "TextInput", "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "4", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "55", - "measuredW": "51", - "measuredH": "25", - "x": "49", - "y": "12", - "properties": { - "size": "17", - "text": "MS IIS" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "128", + "w": "181", + "measuredW": "101", + "measuredH": "32", + "x": "7", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "align": "center", + "color": "16770457", + "size": "18", + "text": "Basic Auth" } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", + "x": "0", + "y": "4", "properties": { "color": "16777215", "icon": { @@ -2979,15 +2345,15 @@ } }, { - "ID": "4", + "ID": "2", "typeID": "Icon", - "zOrder": "4", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "128", - "y": "0", + "x": "0", + "y": "4", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -2999,57 +2365,45 @@ } }, { - "ID": "14121", + "ID": "14141", "typeID": "__group__", - "zOrder": "67", - "measuredW": "152", - "measuredH": "46", - "w": "152", - "h": "46", - "x": "182", - "y": "2450", + "zOrder": "111", + "measuredW": "188", + "measuredH": "32", + "w": "188", + "h": "32", + "x": "673", + "y": "2429", "properties": { - "controlName": "100-containerization:docker" + "controlName": "103-apis:authentication:token-authentication" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "TextInput", "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "6", + "w": "181", + "measuredW": "104", + "measuredH": "32", + "x": "7", + "y": "0", "properties": { - "color": "16770457" + "align": "center", + "color": "16770457", + "size": "18", + "text": "Token Auth" } }, { "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "58", - "measuredW": "56", - "measuredH": "25", - "x": "55", - "y": "14", - "properties": { - "size": "17", - "text": "Docker" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "4", "properties": { "color": "16777215", "icon": { @@ -3059,13 +2413,13 @@ } }, { - "ID": "3", + "ID": "2", "typeID": "Icon", - "zOrder": "3", + "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "4", "properties": { "color": "10027263", "icon": { @@ -3079,49 +2433,67 @@ } }, { - "ID": "14122", + "ID": "14142", "typeID": "__group__", - "zOrder": "68", - "measuredW": "144", - "measuredH": "40", - "w": "144", - "h": "40", - "x": "190", - "y": "2502", + "zOrder": "112", + "measuredW": "188", + "measuredH": "32", + "w": "188", + "h": "32", + "x": "673", + "y": "2466", "properties": { - "controlName": "102-containerization:lxc" + "controlName": "104-apis:authentication:jwt" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "TextInput", "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", + "w": "181", + "measuredW": "51", + "measuredH": "32", + "x": "7", "y": "0", "properties": { - "textColor": "6710886", - "color": "16770457" + "align": "center", + "color": "16770457", + "text": "JWT", + "size": "18" } }, { "ID": "1", - "typeID": "Label", + "typeID": "Icon", "zOrder": "1", - "w": "37", - "measuredW": "32", - "measuredH": "25", - "x": "53", - "y": "8", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "4", "properties": { - "color": "3355443", - "size": "17", - "text": "LXC" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "4", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -3129,56 +2501,45 @@ } }, { - "ID": "14123", + "ID": "14143", "typeID": "__group__", - "zOrder": "69", - "measuredW": "173", - "measuredH": "58", - "w": "173", - "h": "58", - "x": "715", - "y": "2547", + "zOrder": "113", + "measuredW": "188", + "measuredH": "32", + "w": "188", + "h": "32", + "x": "673", + "y": "2503", "properties": { - "controlName": "119-graphql" + "controlName": "105-apis:authentication:openid" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "TextInput", "zOrder": "0", - "w": "163", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "8", + "w": "181", + "measuredW": "78", + "measuredH": "32", + "x": "7", + "y": "0", "properties": { - "color": "16776960" + "align": "center", + "color": "16770457", + "text": "OpenID", + "size": "18" } }, { "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "71", - "measuredH": "25", - "x": "46", - "y": "21", - "properties": { - "text": "GraphQL", - "size": "17" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "149", - "y": "0", + "x": "0", + "y": "4", "properties": { "color": "16777215", "icon": { @@ -3188,13 +2549,13 @@ } }, { - "ID": "3", + "ID": "2", "typeID": "Icon", - "zOrder": "3", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "149", - "y": "0", + "x": "0", + "y": "4", "properties": { "color": "10066329", "icon": { @@ -3208,57 +2569,45 @@ } }, { - "ID": "14124", + "ID": "14144", "typeID": "__group__", - "zOrder": "70", - "measuredW": "155", - "measuredH": "48", - "w": "155", - "h": "48", - "x": "977", - "y": "2530", + "zOrder": "114", + "measuredW": "188", + "measuredH": "32", + "w": "188", + "h": "32", + "x": "673", + "y": "2540", "properties": { - "controlName": "100-graphql:apollo" + "controlName": "105-apis:authentication:saml" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "TextInput", "zOrder": "0", - "w": "144", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "8", + "w": "181", + "measuredW": "62", + "measuredH": "32", + "x": "7", + "y": "0", "properties": { - "color": "16770457" + "align": "center", + "color": "16770457", + "text": "SAML", + "size": "18" } }, { "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "50", - "measuredW": "48", - "measuredH": "25", - "x": "47", - "y": "16", - "properties": { - "size": "17", - "text": "Apollo" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "131", - "y": "0", + "x": "0", + "y": "4", "properties": { "color": "16777215", "icon": { @@ -3268,51 +2617,66 @@ } }, { - "ID": "3", + "ID": "2", "typeID": "Icon", - "zOrder": "3", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "131", - "y": "0", + "x": "0", + "y": "4", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" } } - }, + } + ] + } + } + }, + { + "ID": "14150", + "typeID": "__group__", + "zOrder": "115", + "measuredW": "159", + "measuredH": "50", + "w": "159", + "h": "50", + "x": "1180", + "y": "2336", + "properties": { + "controlName": "110-caching" + }, + "children": { + "controls": { + "control": [ { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "105", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "159", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16776960" } }, { - "ID": "5", - "typeID": "Icon", - "zOrder": "5", - "measuredW": "24", - "measuredH": "24", - "x": "105", - "y": "0", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "64", + "measuredH": "25", + "x": "48", + "y": "13", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Caching", + "size": "17" } } ] @@ -3320,17 +2684,17 @@ } }, { - "ID": "14125", + "ID": "14151", "typeID": "__group__", - "zOrder": "71", - "measuredW": "153", - "measuredH": "44", - "w": "153", - "h": "44", - "x": "977", - "y": "2580", + "zOrder": "116", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "1572", + "y": "2316", "properties": { - "controlName": "101-graphql:relay-modern" + "controlName": "100-caching:server-side:redis" }, "children": { "controls": { @@ -3344,7 +2708,7 @@ "measuredW": "200", "measuredH": "140", "x": "0", - "y": "4", + "y": "0", "properties": { "color": "16770457" } @@ -3353,14 +2717,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "108", - "measuredW": "107", + "w": "46", + "measuredW": "45", "measuredH": "25", - "x": "18", - "y": "12", + "x": "49", + "y": "8", "properties": { "size": "17", - "text": "Relay Modern" + "text": "Redis" } }, { @@ -3369,8 +2733,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "129", - "y": "0", + "x": "130", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -3385,26 +2749,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "129", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "129", - "y": "0", + "x": "130", + "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -3416,17 +2764,17 @@ } }, { - "ID": "14126", + "ID": "14152", "typeID": "__group__", - "zOrder": "72", - "measuredW": "191", - "measuredH": "62", - "w": "191", - "h": "62", - "x": "467", - "y": "2605", + "zOrder": "117", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "1572", + "y": "2361", "properties": { - "controlName": "120-graph-databases" + "controlName": "101-caching:server-side:memcached" }, "children": { "controls": { @@ -3435,27 +2783,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "184", - "h": "50", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "12", + "x": "0", + "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "135", + "w": "96", + "measuredW": "96", "measuredH": "25", - "x": "31", - "y": "25", + "x": "28", + "y": "8", "properties": { - "text": "Graph Databases", - "size": "17" + "size": "17", + "text": "Memcached" } }, { @@ -3464,8 +2813,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "131", + "y": "9", "properties": { "color": "16777215", "icon": { @@ -3480,10 +2829,26 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "131", + "y": "9", "properties": { - "color": "10066329", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "9", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -3495,17 +2860,17 @@ } }, { - "ID": "14127", + "ID": "14153", "typeID": "__group__", - "zOrder": "73", - "measuredW": "167", - "measuredH": "58", - "w": "167", - "h": "58", - "x": "561", - "y": "2730", + "zOrder": "118", + "measuredW": "129", + "measuredH": "40", + "w": "129", + "h": "40", + "x": "1402", + "y": "2337", "properties": { - "controlName": "121-web-sockets" + "controlName": "101-caching:server-side" }, "children": { "controls": { @@ -3514,37 +2879,86 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "159", - "h": "50", + "w": "129", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "8", + "x": "0", + "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "95", + "w": "95", + "measuredW": "90", "measuredH": "25", - "x": "40", - "y": "21", + "x": "19", + "y": "8", "properties": { - "text": "WebSockets", - "size": "17" + "size": "17", + "text": "Server Side" } - }, + } + ] + } + } + }, + { + "ID": "14154", + "typeID": "__group__", + "zOrder": "119", + "measuredW": "140", + "measuredH": "40", + "w": "140", + "h": "40", + "x": "1402", + "y": "2292", + "properties": { + "controlName": "102-caching:client-side" + }, + "children": { + "controls": { + "control": [ { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "130", + "h": "40", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "88", + "measuredW": "84", + "measuredH": "25", + "x": "21", + "y": "7", + "properties": { + "size": "17", + "text": "Client Side" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -3559,10 +2973,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "116", + "y": "8", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -3574,358 +2988,204 @@ } }, { - "ID": "14128", - "typeID": "Arrow", - "zOrder": "74", - "w": "85", - "h": "75", - "measuredW": "150", - "measuredH": "100", - "x": "622", - "y": "1157", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 85, - "y": 0 - }, - "p1": { - "x": 0.6098445595854923, - "y": -0.2025906735751296 - }, - "p2": { - "x": 0, - "y": 74.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14129", - "typeID": "Arrow", - "zOrder": "75", - "w": "14", - "h": "62", - "measuredW": "150", - "measuredH": "100", - "x": "610", - "y": "2003", + "ID": "14155", + "typeID": "__group__", + "zOrder": "120", + "measuredW": "139", + "measuredH": "37", + "w": "139", + "h": "37", + "x": "1402", + "y": "2382", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 12, - "y": 62 - }, - "p1": { - "x": 0.5415800415800416, - "y": 0.21101871101871103 - }, - "p2": { - "x": 14, - "y": 0 - }, - "rightArrow": "false" + "controlName": "100-caching:cdn" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "129", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "40", + "measuredW": "38", + "measuredH": "25", + "x": "45", + "y": "6", + "properties": { + "size": "17", + "text": "CDN" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "115", + "y": "5", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "115", + "y": "5", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14130", + "ID": "14165", "typeID": "Arrow", - "zOrder": "76", - "w": "78", - "h": "48", + "zOrder": "121", + "w": "106", + "h": "396", "measuredW": "150", "measuredH": "100", - "x": "484", - "y": "1995", + "x": "1214", + "y": "1648", "properties": { "color": "2848996", - "curvature": "-1", + "curvature": "0", + "direction": "top", "leftArrow": "false", - "p0": { - "x": 0, - "y": 48 - }, - "p1": { - "x": 0.469926650366748, - "y": -0.0004889975550122233 - }, - "p2": { - "x": 78, - "y": 0 - }, "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14131", - "typeID": "Arrow", - "zOrder": "77", - "w": "81", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "475", - "y": "1993", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", "p0": { - "x": 0, - "y": 4 + "x": 104.38081254263102, + "y": 0.3660325341022599 }, "p1": { - "x": 0.4699266503667479, - "y": -0.0004889975550122077 + "x": 0.6207499156881379, + "y": 0.1157065334028267 }, "p2": { - "x": 81, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "x": 0.3736634222534576, + "y": 396.0186443608777 + } } }, { - "ID": "14132", - "typeID": "Arrow", - "zOrder": "78", - "w": "86", - "h": "33", - "measuredW": "150", - "measuredH": "100", - "x": "477", - "y": "1952", + "ID": "14178", + "typeID": "__group__", + "zOrder": "122", + "measuredW": "229", + "measuredH": "50", + "w": "229", + "h": "50", + "x": "948", + "y": "1428", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.469926650366748, - "y": -0.0004889975550122311 - }, - "p2": { - "x": 86, - "y": 33 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "106-relational-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "229", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "165", + "measuredH": "25", + "x": "32", + "y": "13", + "properties": { + "size": "17", + "text": "Relational Databases" + } + } + ] + } } }, { - "ID": "14133", - "typeID": "Arrow", - "zOrder": "79", - "w": "107", - "h": "129", - "measuredW": "150", - "measuredH": "100", - "x": "703", - "y": "1859", + "ID": "14179", + "typeID": "__group__", + "zOrder": "123", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "675", + "y": "1371", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 128 - }, - "p1": { - "x": 0.47671351663836425, - "y": -0.2605051125483238 - }, - "p2": { - "x": 106, - "y": -0.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14134", - "typeID": "Arrow", - "zOrder": "80", - "w": "80", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "979", - "y": "1853", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.5633394785356862, - "y": -0.002106926520937582 - }, - "p2": { - "x": 80, - "y": -0.5 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14135", - "typeID": "Arrow", - "zOrder": "81", - "w": "123", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "662", - "y": "1859", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 123, - "y": 0 - }, - "p1": { - "x": 0.5029666818804199, - "y": 0.002738475581926061 - }, - "p2": { - "x": 0, - "y": 4.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14136", - "typeID": "Arrow", - "zOrder": "82", - "w": "94", - "h": "52", - "measuredW": "150", - "measuredH": "100", - "x": "713", - "y": "1650", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 51.5 - }, - "p1": { - "x": 0.44142114384748704, - "y": -0.10589254766031196 - }, - "p2": { - "x": 94, - "y": -0.5 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14137", - "typeID": "Arrow", - "zOrder": "83", - "w": "70", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "406", - "y": "1702", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 1 - }, - "p1": { - "x": 0.469926650366748, - "y": -0.0004889975550122329 - }, - "p2": { - "x": 70, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14138", - "typeID": "TextArea", - "zOrder": "84", - "w": "248", - "h": "282", - "measuredW": "200", - "measuredH": "140", - "x": "185", - "y": "1492" - }, - { - "ID": "14139", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "230", - "measuredH": "36", - "w": "230", - "h": "36", - "x": "190", - "y": "1540", - "properties": { - "controlName": "101-apis:authentication:oauth" + "controlName": "100-relational-databases:postgresql" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "223", - "measuredW": "64", - "measuredH": "32", - "x": "7", - "y": "4", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "OAuth" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "w": "96", + "measuredW": "93", + "measuredH": "25", + "x": "56", + "y": "7", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "PostgreSQL" } }, { @@ -3935,59 +3195,23 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { - "color": "10027263", + "color": "16777215", "icon": { - "ID": "check-circle", + "ID": "circle", "size": "small" } } - } - ] - } - } - }, - { - "ID": "14140", - "typeID": "__group__", - "zOrder": "86", - "measuredW": "230", - "measuredH": "36", - "w": "230", - "h": "36", - "x": "190", - "y": "1576", - "properties": { - "controlName": "102-apis:authentication:basic-authentication" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextInput", - "zOrder": "0", - "w": "223", - "measuredW": "181", - "measuredH": "32", - "x": "7", - "y": "4", - "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "Basic Authentication" - } }, { - "ID": "1", + "ID": "3", "typeID": "Icon", - "zOrder": "1", + "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -3997,13 +3221,13 @@ } }, { - "ID": "2", + "ID": "4", "typeID": "Icon", - "zOrder": "2", + "zOrder": "4", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -4017,45 +3241,57 @@ } }, { - "ID": "14141", + "ID": "14180", "typeID": "__group__", - "zOrder": "87", - "measuredW": "230", - "measuredH": "35", - "w": "230", - "h": "35", - "x": "190", - "y": "1613", + "zOrder": "124", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "675", + "y": "1416", "properties": { - "controlName": "103-apis:authentication:token-authentication" + "controlName": "101-relational-databases:mysql" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "223", - "measuredW": "185", - "measuredH": "32", - "x": "7", - "y": "3", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "Token Authentication" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", + "w": "60", + "measuredW": "56", + "measuredH": "25", + "x": "74", + "y": "7", + "properties": { + "size": "17", + "text": "MySQL" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4065,15 +3301,31 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", - "zOrder": "2", + "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { - "color": "10027263", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -4085,45 +3337,56 @@ } }, { - "ID": "14142", + "ID": "14181", "typeID": "__group__", - "zOrder": "88", - "measuredW": "230", - "measuredH": "36", - "w": "230", - "h": "36", - "x": "190", - "y": "1649", + "zOrder": "125", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "675", + "y": "1461", "properties": { - "controlName": "104-apis:authentication:jwt" + "controlName": "102-relational-databases:mariadb" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "223", - "measuredW": "51", - "measuredH": "32", - "x": "7", - "y": "4", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "JWT" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", + "measuredW": "69", + "measuredH": "25", + "x": "69", + "y": "7", + "properties": { + "size": "17", + "text": "MariaDB" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4133,15 +3396,31 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", - "zOrder": "2", + "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { - "color": "10027263", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -4153,45 +3432,57 @@ } }, { - "ID": "14143", + "ID": "14182", "typeID": "__group__", - "zOrder": "89", - "measuredW": "230", - "measuredH": "37", - "w": "230", - "h": "37", - "x": "191", - "y": "1684", + "zOrder": "126", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "675", + "y": "1506", "properties": { - "controlName": "105-apis:authentication:openid" + "controlName": "103-relational-databases:mssql" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "223", - "measuredW": "78", - "measuredH": "32", - "x": "7", - "y": "5", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "OpenID" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", + "w": "67", + "measuredW": "63", + "measuredH": "25", + "x": "70", + "y": "8", + "properties": { + "size": "17", + "text": "MS SQL" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -4201,15 +3492,31 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", - "zOrder": "2", + "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { - "color": "10066329", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -4221,45 +3528,57 @@ } }, { - "ID": "14144", + "ID": "14183", "typeID": "__group__", - "zOrder": "90", - "measuredW": "230", - "measuredH": "36", - "w": "230", - "h": "36", - "x": "191", - "y": "1722", + "zOrder": "127", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "675", + "y": "1552", "properties": { - "controlName": "105-apis:authentication:saml" + "controlName": "104-relational-databases:oracle" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextInput", + "typeID": "TextArea", "zOrder": "0", - "w": "223", - "measuredW": "62", - "measuredH": "32", - "x": "7", - "y": "4", + "w": "191", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "SAML" + "color": "16770457" } }, { "ID": "1", - "typeID": "Icon", + "typeID": "Label", "zOrder": "1", + "w": "54", + "measuredW": "52", + "measuredH": "25", + "x": "77", + "y": "8", + "properties": { + "size": "17", + "text": "Oracle" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4269,15 +3588,31 @@ } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", - "zOrder": "2", + "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "10066329", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -4289,166 +3624,17 @@ } }, { - "ID": "14145", - "typeID": "Arrow", - "zOrder": "91", - "w": "57", - "h": "33", - "measuredW": "150", - "measuredH": "100", - "x": "476", - "y": "1863", + "ID": "14184", + "typeID": "__group__", + "zOrder": "128", + "measuredW": "226", + "measuredH": "50", + "w": "226", + "h": "50", + "x": "1129", + "y": "1631", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 33 - }, - "p1": { - "x": 0.4920052363364346, - "y": -0.09642807050352983 - }, - "p2": { - "x": 57, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14146", - "typeID": "Arrow", - "zOrder": "92", - "w": "95", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "447", - "y": "1852", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 3 - }, - "p1": { - "x": 0.4699266503667481, - "y": -0.000488997555012226 - }, - "p2": { - "x": 95, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14147", - "typeID": "Arrow", - "zOrder": "93", - "w": "81", - "h": "20", - "measuredW": "150", - "measuredH": "100", - "x": "289", - "y": "1856", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 19.5 - }, - "p1": { - "x": 0.4816763425253991, - "y": -0.05932510885341123 - }, - "p2": { - "x": 80, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14148", - "typeID": "Arrow", - "zOrder": "94", - "w": "87", - "h": "23", - "measuredW": "150", - "measuredH": "100", - "x": "282", - "y": "1829", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 1 - }, - "p1": { - "x": 0.5043513295729252, - "y": 0.08807413376309427 - }, - "p2": { - "x": 86, - "y": 23 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14149", - "typeID": "Arrow", - "zOrder": "95", - "w": "242", - "h": "206", - "measuredW": "150", - "measuredH": "100", - "x": "666", - "y": "1642", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 242, - "y": 0 - }, - "p1": { - "x": 0.5151777033596199, - "y": 0.14994058550286274 - }, - "p2": { - "x": 0.21212121212113288, - "y": 206.030303030303 - } - } - }, - { - "ID": "14150", - "typeID": "__group__", - "zOrder": "96", - "measuredW": "159", - "measuredH": "50", - "w": "159", - "h": "50", - "x": "522", - "y": "1829", - "properties": { - "controlName": "110-caching" + "controlName": "107-nosql-databases" }, "children": { "controls": { @@ -4457,7 +3643,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "159", + "w": "226", "h": "50", "measuredW": "200", "measuredH": "140", @@ -4471,12 +3657,12 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "64", + "measuredW": "143", "measuredH": "25", - "x": "48", - "y": "13", + "x": "41", + "y": "12", "properties": { - "text": "Caching", + "text": "NoSQL Databases", "size": "17" } } @@ -4485,17 +3671,17 @@ } }, { - "ID": "14151", + "ID": "14187", "typeID": "__group__", - "zOrder": "97", - "measuredW": "153", - "measuredH": "48", - "w": "153", - "h": "48", - "x": "156", - "y": "1802", + "zOrder": "129", + "measuredW": "178", + "measuredH": "40", + "w": "178", + "h": "40", + "x": "1061", + "y": "1803", "properties": { - "controlName": "100-caching:server-side:redis" + "controlName": "101-more-about-databases:acid" }, "children": { "controls": { @@ -4504,12 +3690,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "144", + "w": "171", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "9", - "y": "8", + "x": "7", + "y": "0", "properties": { "color": "16770457" } @@ -4518,14 +3704,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "46", - "measuredW": "45", + "w": "43", + "measuredW": "40", "measuredH": "25", - "x": "58", - "y": "16", + "x": "71", + "y": "7", "properties": { "size": "17", - "text": "Redis" + "text": "ACID" } }, { @@ -4535,7 +3721,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4551,7 +3737,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -4565,17 +3751,17 @@ } }, { - "ID": "14152", + "ID": "14188", "typeID": "__group__", - "zOrder": "98", - "measuredW": "151", - "measuredH": "45", - "w": "151", - "h": "45", - "x": "158", - "y": "1851", + "zOrder": "130", + "measuredW": "226", + "measuredH": "50", + "w": "226", + "h": "50", + "x": "1068", + "y": "2020", "properties": { - "controlName": "101-caching:server-side:memcached" + "controlName": "108-more-about-databases" }, "children": { "controls": { @@ -4584,12 +3770,59 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "144", + "w": "226", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "176", + "measuredH": "25", + "x": "29", + "y": "13", + "properties": { + "text": "More about Databases", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "14189", + "typeID": "__group__", + "zOrder": "131", + "measuredW": "178", + "measuredH": "40", + "w": "178", + "h": "40", + "x": "1061", + "y": "1848", + "properties": { + "controlName": "102-more-about-databases:transactions" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "171", "h": "40", "measuredW": "200", "measuredH": "140", "x": "7", - "y": "5", + "y": "0", "properties": { "color": "16770457" } @@ -4598,14 +3831,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "96", - "measuredW": "96", + "w": "105", + "measuredW": "99", "measuredH": "25", - "x": "35", - "y": "13", + "x": "47", + "y": "7", "properties": { "size": "17", - "text": "Memcached" + "text": "Transactions" } }, { @@ -4615,7 +3848,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4631,25 +3864,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -4661,17 +3878,17 @@ } }, { - "ID": "14153", + "ID": "14190", "typeID": "__group__", - "zOrder": "99", - "measuredW": "129", + "zOrder": "132", + "measuredW": "178", "measuredH": "40", - "w": "129", + "w": "178", "h": "40", - "x": "361", - "y": "1834", + "x": "1061", + "y": "1893", "properties": { - "controlName": "101-caching:server-side" + "controlName": "103-more-about-databases:n-plus-one-problem" }, "children": { "controls": { @@ -4680,11 +3897,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "129", + "w": "171", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "7", "y": "0", "properties": { "color": "16770457" @@ -4694,14 +3911,45 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "95", - "measuredW": "90", + "measuredW": "99", "measuredH": "25", - "x": "19", - "y": "8", + "x": "46", + "y": "7", "properties": { - "size": "17", - "text": "Server Side" + "text": "N+1 Problem", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -4709,17 +3957,17 @@ } }, { - "ID": "14154", + "ID": "14191", "typeID": "__group__", - "zOrder": "100", - "measuredW": "135", - "measuredH": "44", - "w": "135", - "h": "44", - "x": "354", - "y": "1875", + "zOrder": "133", + "measuredW": "215", + "measuredH": "40", + "w": "215", + "h": "40", + "x": "1522", + "y": "2113", "properties": { - "controlName": "102-caching:client-side" + "controlName": "102-scaling-databases:sharding-strategies" }, "children": { "controls": { @@ -4728,12 +3976,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "128", + "w": "206", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "4", + "x": "0", + "y": "0", "properties": { "color": "16770457" } @@ -4742,14 +3990,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "88", - "measuredW": "84", + "w": "155", + "measuredW": "151", "measuredH": "25", - "x": "28", - "y": "12", + "x": "27", + "y": "7", "properties": { "size": "17", - "text": "Client Side" + "text": "Sharding Strategies" } }, { @@ -4758,8 +4006,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "191", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4774,10 +4022,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "191", + "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -4789,17 +4037,17 @@ } }, { - "ID": "14155", + "ID": "14192", "typeID": "__group__", - "zOrder": "101", - "measuredW": "138", - "measuredH": "46", - "w": "138", - "h": "46", - "x": "353", - "y": "1783", + "zOrder": "134", + "measuredW": "182", + "measuredH": "40", + "w": "182", + "h": "40", + "x": "1059", + "y": "1939", "properties": { - "controlName": "100-caching:cdn" + "controlName": "104-more-about-databases:database-normalization" }, "children": { "controls": { @@ -4808,12 +4056,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "129", - "h": "37", + "w": "173", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "9", - "y": "9", + "y": "0", "properties": { "color": "16770457" } @@ -4822,14 +4070,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "40", - "measuredW": "38", + "measuredW": "107", "measuredH": "25", - "x": "54", - "y": "16", + "x": "42", + "y": "7", "properties": { "size": "17", - "text": "CDN" + "text": "Normalization" } }, { @@ -4839,7 +4086,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -4855,7 +4102,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -4869,1259 +4116,543 @@ } }, { - "ID": "14156", - "typeID": "Arrow", - "zOrder": "102", - "w": "103", - "h": "16", - "measuredW": "150", - "measuredH": "100", - "x": "1008", - "y": "1466", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 15 - }, - "p1": { - "x": 0.4615951248911806, - "y": 0.017310654255675347 - }, - "p2": { - "x": 102, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14157", - "typeID": "Arrow", - "zOrder": "103", - "w": "103", - "h": "23", - "measuredW": "150", - "measuredH": "100", - "x": "1009", - "y": "1489", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.45604025566412953, - "y": -0.030700026684625844 - }, - "p2": { - "x": 103, - "y": 22 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14158", - "typeID": "Arrow", - "zOrder": "104", - "w": "100", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "708", - "y": "1642", + "ID": "14193", + "typeID": "__group__", + "zOrder": "135", + "measuredW": "215", + "measuredH": "40", + "w": "215", + "h": "40", + "x": "1522", + "y": "2067", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 15 - }, - "p1": { - "x": 0.4699266503667482, - "y": -0.000488997555012225 - }, - "p2": { - "x": 100, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "101-scaling-databases:data-replication" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "207", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "129", + "measuredW": "128", + "measuredH": "25", + "x": "42", + "y": "7", + "properties": { + "size": "17", + "text": "Data Replication" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "191", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "191", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14159", - "typeID": "Arrow", - "zOrder": "105", - "w": "109", - "h": "24", - "measuredW": "150", - "measuredH": "100", - "x": "696", - "y": "1612", + "ID": "14194", + "typeID": "__group__", + "zOrder": "136", + "measuredW": "215", + "measuredH": "40", + "w": "215", + "h": "40", + "x": "1522", + "y": "2022", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 1 - }, - "p1": { - "x": 0.5043513295729251, - "y": 0.08807413376309428 - }, - "p2": { - "x": 108.5, - "y": 24 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14160", - "typeID": "Arrow", - "zOrder": "106", - "w": "104", - "h": "75", - "measuredW": "150", - "measuredH": "100", - "x": "1015", - "y": "1559", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 75 - }, - "p1": { - "x": 0.5126056879323597, - "y": 0.057109915449654144 - }, - "p2": { - "x": 103.5, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "100-scaling-databases:database-indexes" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "204", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "140", + "measuredH": "25", + "x": "32", + "y": "7", + "properties": { + "size": "17", + "text": "Database Indexes" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "191", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "191", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14161", - "typeID": "Arrow", - "zOrder": "107", - "w": "96", - "h": "37", - "measuredW": "150", - "measuredH": "100", - "x": "1021", - "y": "1635", + "ID": "14195", + "typeID": "__group__", + "zOrder": "137", + "measuredW": "178", + "measuredH": "50", + "w": "178", + "h": "50", + "x": "928", + "y": "2145", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 0 - }, - "p1": { - "x": 0.553292254417681, - "y": -0.1507867800580538 - }, - "p2": { - "x": 95.5, - "y": 33 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "109-apis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "133", + "measuredH": "25", + "x": "22", + "y": "13", + "properties": { + "text": "Learn about APIs", + "size": "17" + } + } + ] + } } }, { - "ID": "14162", - "typeID": "Arrow", - "zOrder": "108", - "w": "93", - "h": "66", - "measuredW": "150", - "measuredH": "100", - "x": "1024", - "y": "1645", + "ID": "14196", + "typeID": "__group__", + "zOrder": "138", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "955", + "y": "2242", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 0 - }, - "p1": { - "x": 0.5583937813065076, - "y": -0.1856462910232163 - }, - "p2": { - "x": 92.5, - "y": 65 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "100-apis:rest" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "146", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "49", + "measuredW": "44", + "measuredH": "25", + "x": "48", + "y": "7", + "properties": { + "size": "17", + "text": "REST" + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "130", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "130", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14163", - "typeID": "Arrow", - "zOrder": "109", - "w": "21", - "h": "147", - "measuredW": "150", - "measuredH": "100", - "x": "912", - "y": "1485", + "ID": "14197", + "typeID": "__group__", + "zOrder": "139", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "955", + "y": "2287", "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 3, - "y": 0 - }, - "p1": { - "x": 0.5150179959193967, - "y": 0.1283510235895555 - }, - "p2": { - "x": 0, - "y": 147 - }, - "rightArrow": "false" + "controlName": "101-apis:json-apis" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "146", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "90", + "measuredW": "85", + "measuredH": "25", + "x": "28", + "y": "7", + "properties": { + "size": "17", + "text": "JSON APIs" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14164", - "typeID": "Arrow", - "zOrder": "110", - "w": "105", - "h": "58", - "measuredW": "150", - "measuredH": "100", - "x": "1004", - "y": "1419", + "ID": "14198", + "typeID": "__group__", + "zOrder": "140", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "956", + "y": "2332", "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 57 - }, - "p1": { - "x": 0.43648681345269785, - "y": 0.055165739172513925 - }, - "p2": { - "x": 104, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "102-apis:soap" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "49", + "measuredW": "44", + "measuredH": "25", + "x": "48", + "y": "7", + "properties": { + "size": "17", + "text": "SOAP" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "130", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "130", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14165", - "typeID": "Arrow", - "zOrder": "111", - "w": "7", - "h": "227", - "measuredW": "150", - "measuredH": "100", - "x": "864", - "y": "1241", + "ID": "14199", + "typeID": "__group__", + "zOrder": "141", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "667", + "y": "2149", "properties": { - "color": "2848996", - "curvature": "0", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 1, - "y": 0 - }, - "p1": { - "x": 0.5023004996784247, - "y": -0.007519912927323998 - }, - "p2": { - "x": 6, - "y": 226 - }, - "rightArrow": "false" + "controlName": "104-apis:hateoas" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "190", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "78", + "measuredW": "76", + "measuredH": "25", + "x": "65", + "y": "7", + "properties": { + "size": "17", + "text": "HATEOAS" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14166", - "typeID": "Arrow", - "zOrder": "112", - "w": "82", - "h": "58", - "measuredW": "150", - "measuredH": "100", - "x": "710", - "y": "1491", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 81, - "y": 0 - }, - "p1": { - "x": 0.6458011220568096, - "y": 0.05946017581835049 - }, - "p2": { - "x": 0, - "y": 58 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14167", - "typeID": "Arrow", - "zOrder": "113", - "w": "81", - "h": "8", - "measuredW": "150", - "measuredH": "100", - "x": "709", - "y": "1491", - "properties": { - "color": "2848996", - "curvature": "1", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 80, - "y": 0 - }, - "p1": { - "x": 0.5775782957636026, - "y": -0.025361653846795687 - }, - "p2": { - "x": 0, - "y": 7 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14168", - "typeID": "Arrow", - "zOrder": "114", - "w": "85", - "h": "29", - "measuredW": "150", - "measuredH": "100", - "x": "705", - "y": "1456", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 84, - "y": 28 - }, - "p1": { - "x": 0.6101477809142017, - "y": -0.07187418459567801 - }, - "p2": { - "x": 0, - "y": 1 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14169", - "typeID": "Arrow", - "zOrder": "115", - "w": "97", - "h": "69", - "measuredW": "150", - "measuredH": "100", - "x": "695", - "y": "1405", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 96, - "y": 68 - }, - "p1": { - "x": 0.6632615833637359, - "y": -0.099598686610726 - }, - "p2": { - "x": 0, - "y": 1 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14170", - "typeID": "Arrow", - "zOrder": "116", - "w": "74", - "h": "94", - "measuredW": "150", - "measuredH": "100", - "x": "713", - "y": "1363", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 73, - "y": 93 - }, - "p1": { - "x": 0.6010928961748633, - "y": -0.054644808743169335 - }, - "p2": { - "x": 0, - "y": 1 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14171", - "typeID": "Arrow", - "zOrder": "117", - "w": "83", - "h": "213", - "measuredW": "150", - "measuredH": "100", - "x": "731", - "y": "1246", - "properties": { - "color": "2848996", - "curvature": "1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 1 - }, - "p1": { - "x": 0.2883988681822617, - "y": 0.12014830715191724 - }, - "p2": { - "x": 82, - "y": 212 - }, - "rightArrow": "false" - } - }, - { - "ID": "14172", - "typeID": "Arrow", - "zOrder": "118", - "w": "82", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "946", - "y": "1221", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "top", - "leftArrow": "false", - "p0": { - "x": 81, - "y": 4 - }, - "p1": { - "x": 0.4444444444444445, - "y": -0.04938271604938272 - }, - "p2": { - "x": 0, - "y": 4 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14173", - "typeID": "Arrow", - "zOrder": "119", - "w": "67", - "h": "111", - "measuredW": "150", - "measuredH": "100", - "x": "448", - "y": "1261", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 67, - "y": 0 - }, - "p1": { - "x": 0.5, - "y": 0 - }, - "p2": { - "x": 0, - "y": 111 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14174", - "typeID": "Arrow", - "zOrder": "120", - "w": "78", - "h": "157", - "measuredW": "150", - "measuredH": "100", - "x": "446", - "y": "1262", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 78, - "y": 0 - }, - "p1": { - "x": 0.4932456861133936, - "y": 0.07316351684470009 - }, - "p2": { - "x": 0, - "y": 157 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14175", - "typeID": "Arrow", - "zOrder": "121", - "w": "73", - "h": "79", - "measuredW": "150", - "measuredH": "100", - "x": "441", - "y": "1249", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 73, - "y": 0 - }, - "p1": { - "x": 0.5, - "y": 0 - }, - "p2": { - "x": 0, - "y": 79 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14176", - "typeID": "Arrow", - "zOrder": "122", - "w": "86", - "h": "32", - "measuredW": "150", - "measuredH": "100", - "x": "434", - "y": "1242", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 86, - "y": 0 - }, - "p1": { - "x": 0.5, - "y": 0 - }, - "p2": { - "x": 0, - "y": 32 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14177", - "typeID": "Arrow", - "zOrder": "123", - "w": "125", - "h": "14", - "measuredW": "150", - "measuredH": "100", - "x": "425", - "y": "1227", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 125, - "y": 14 - }, - "p1": { - "x": 0.5, - "y": 0 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14178", - "typeID": "__group__", - "zOrder": "124", - "measuredW": "229", - "measuredH": "50", - "w": "229", - "h": "50", - "x": "508", - "y": "1221", - "properties": { - "controlName": "106-relational-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "229", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "165", - "measuredH": "25", - "x": "32", - "y": "13", - "properties": { - "size": "17", - "text": "Relational Databases" - } - } - ] - } - } - }, - { - "ID": "14179", - "typeID": "__group__", - "zOrder": "125", - "measuredW": "199", - "measuredH": "47", - "w": "199", - "h": "47", - "x": "255", - "y": "1205", - "properties": { - "controlName": "100-relational-databases:postgresql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "7", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "96", - "measuredW": "93", - "measuredH": "25", - "x": "56", - "y": "15", - "properties": { - "size": "17", - "text": "PostgreSQL" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14180", - "typeID": "__group__", - "zOrder": "126", - "measuredW": "199", - "measuredH": "43", - "w": "199", - "h": "43", - "x": "255", - "y": "1255", - "properties": { - "controlName": "101-relational-databases:mysql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "3", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "60", - "measuredW": "56", - "measuredH": "25", - "x": "74", - "y": "11", - "properties": { - "size": "17", - "text": "MySQL" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14181", - "typeID": "__group__", - "zOrder": "127", - "measuredW": "199", - "measuredH": "43", - "w": "199", - "h": "43", - "x": "255", - "y": "1300", - "properties": { - "controlName": "102-relational-databases:mariadb" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "3", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "69", - "measuredH": "25", - "x": "69", - "y": "11", - "properties": { - "size": "17", - "text": "MariaDB" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14182", - "typeID": "__group__", - "zOrder": "128", - "measuredW": "199", - "measuredH": "43", - "w": "199", - "h": "43", - "x": "255", - "y": "1346", - "properties": { - "controlName": "103-relational-databases:mssql" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "3", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "67", - "measuredW": "63", - "measuredH": "25", - "x": "70", - "y": "11", - "properties": { - "size": "17", - "text": "MS SQL" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14183", - "typeID": "__group__", - "zOrder": "129", - "measuredW": "199", - "measuredH": "43", - "w": "199", - "h": "43", - "x": "255", - "y": "1392", - "properties": { - "controlName": "104-relational-databases:oracle" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "3", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "54", - "measuredW": "52", - "measuredH": "25", - "x": "77", - "y": "11", - "properties": { - "size": "17", - "text": "Oracle" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14184", - "typeID": "__group__", - "zOrder": "130", - "measuredW": "191", - "measuredH": "50", - "w": "191", - "h": "50", - "x": "776", - "y": "1207", - "properties": { - "controlName": "107-nosql-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "191", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "143", - "measuredH": "25", - "x": "24", - "y": "12", - "properties": { - "text": "NoSQL Databases", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "14185", + "ID": "14200", "typeID": "__group__", - "zOrder": "131", - "measuredW": "326", + "zOrder": "142", + "measuredW": "200", "measuredH": "40", - "w": "326", + "w": "200", "h": "40", - "x": "1010", - "y": "1202", + "x": "667", + "y": "2195", "properties": { - "controlName": "100-nosql-databases:document-databases" + "controlName": "105-apis:open-api-spec" }, "children": { "controls": { @@ -6130,148 +4661,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "326", + "w": "190", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "80", - "measuredH": "25", - "x": "15", - "y": "8", - "properties": { - "size": "17", - "text": "Document" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "159", - "measuredH": "25", - "x": "105", - "y": "8", - "properties": { - "size": "17", - "text": "{color:blue}MongoDB{color}, CouchDB" - } - } - ] - } - } - }, - { - "ID": "14186", - "typeID": "__group__", - "zOrder": "132", - "measuredW": "328", - "measuredH": "42", - "w": "328", - "h": "42", - "x": "1009", - "y": "1335", - "properties": { - "controlName": "103-nosql-databases:realtime-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Icon", - "zOrder": "0", - "measuredW": "24", - "measuredH": "24", - "x": "232", + "x": "10", "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "1", - "typeID": "TextArea", - "zOrder": "1", - "w": "328", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "2", - "properties": { - "color": "16770457" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "69", - "measuredH": "25", - "x": "16", - "y": "10", - "properties": { - "size": "17", - "text": "Realtime" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "159", - "measuredH": "25", - "x": "99", - "y": "10", - "properties": { - "size": "17", - "text": "{color:blue}Firebase{color}, RethinkDB" - } - } - ] - } - } - }, - { - "ID": "14187", - "typeID": "__group__", - "zOrder": "133", - "measuredW": "178", - "measuredH": "44", - "w": "178", - "h": "44", - "x": "541", - "y": "1342", - "properties": { - "controlName": "101-more-about-databases:acid" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "171", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "4", "properties": { "color": "16770457" } @@ -6280,14 +4675,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "43", - "measuredW": "40", + "measuredW": "126", "measuredH": "25", - "x": "71", - "y": "12", + "x": "42", + "y": "7", "properties": { "size": "17", - "text": "ACID" + "text": "Open API Specs" } }, { @@ -6297,7 +4691,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -6313,9 +4707,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -6327,17 +4721,17 @@ } }, { - "ID": "14188", + "ID": "14201", "typeID": "__group__", - "zOrder": "134", - "measuredW": "238", - "measuredH": "50", - "w": "238", - "h": "50", - "x": "782", - "y": "1452", + "zOrder": "143", + "measuredW": "214", + "measuredH": "40", + "w": "214", + "h": "40", + "x": "1523", + "y": "2159", "properties": { - "controlName": "108-more-about-databases" + "controlName": "103-scaling-databases:cap-theorem" }, "children": { "controls": { @@ -6346,59 +4740,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "238", - "h": "50", + "w": "206", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "176", - "measuredH": "25", - "x": "31", - "y": "13", - "properties": { - "text": "More about Databases", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "14189", - "typeID": "__group__", - "zOrder": "135", - "measuredW": "178", - "measuredH": "45", - "w": "178", - "h": "45", - "x": "541", - "y": "1385", - "properties": { - "controlName": "102-more-about-databases:transactions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "171", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "5", "properties": { "color": "16770457" } @@ -6407,14 +4754,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "105", - "measuredW": "99", + "w": "109", + "measuredW": "107", "measuredH": "25", - "x": "47", - "y": "12", + "x": "48", + "y": "7", "properties": { "size": "17", - "text": "Transactions" + "text": "CAP Theorem" } }, { @@ -6423,8 +4770,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "190", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -6439,10 +4786,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "190", + "y": "8", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -6454,17 +4801,17 @@ } }, { - "ID": "14190", + "ID": "14202", "typeID": "__group__", - "zOrder": "136", - "measuredW": "178", - "measuredH": "43", - "w": "178", - "h": "43", - "x": "541", - "y": "1431", + "zOrder": "144", + "measuredW": "201", + "measuredH": "40", + "w": "201", + "h": "40", + "x": "666", + "y": "2240", "properties": { - "controlName": "103-more-about-databases:n-plus-one-problem" + "controlName": "106-apis:authentication" }, "children": { "controls": { @@ -6473,12 +4820,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "171", + "w": "192", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "3", + "x": "9", + "y": "0", "properties": { "color": "16770457" } @@ -6487,13 +4834,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "99", + "w": "111", + "measuredW": "111", "measuredH": "25", - "x": "46", - "y": "11", + "x": "49", + "y": "7", "properties": { - "text": "N+1 Problem", - "size": "17" + "size": "17", + "text": "Authentication" } }, { @@ -6503,7 +4851,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -6519,7 +4867,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -6533,17 +4881,17 @@ } }, { - "ID": "14191", + "ID": "14204", "typeID": "__group__", - "zOrder": "137", - "measuredW": "215", - "measuredH": "44", - "w": "215", - "h": "44", - "x": "1100", - "y": "1441", + "zOrder": "145", + "measuredW": "240", + "measuredH": "54", + "w": "240", + "h": "54", + "x": "1173", + "y": "2462", "properties": { - "controlName": "107-more-about-databases:sharding-strategies" + "controlName": "111-web-security-knowledge" }, "children": { "controls": { @@ -6552,60 +4900,85 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "206", - "h": "40", + "w": "240", + "h": "54", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "4", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "155", - "measuredW": "151", + "measuredW": "189", "measuredH": "25", - "x": "27", - "y": "11", + "x": "25", + "y": "15", "properties": { "size": "17", - "text": "Sharding Strategies" + "text": "Web Security Knowledge" } - }, + } + ] + } + } + }, + { + "ID": "14205", + "typeID": "TextArea", + "zOrder": "258", + "w": "271", + "h": "171", + "measuredW": "200", + "measuredH": "140", + "x": "1451", + "y": "2651" + }, + { + "ID": "14206", + "typeID": "__group__", + "zOrder": "259", + "measuredW": "86", + "measuredH": "42", + "w": "86", + "h": "42", + "x": "1467", + "y": "2715", + "properties": { + "controlName": "106-web-security-knowledge:cors" + }, + "children": { + "controls": { + "control": [ { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "191", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "86", + "h": "42", + "measuredW": "200", + "measuredH": "140", + "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "191", - "y": "0", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "25", + "y": "9", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "CORS", + "size": "17" } } ] @@ -6613,17 +4986,17 @@ } }, { - "ID": "14192", + "ID": "14207", "typeID": "__group__", - "zOrder": "138", - "measuredW": "272", - "measuredH": "49", - "w": "272", - "h": "49", - "x": "449", - "y": "1471", + "zOrder": "260", + "measuredW": "90", + "measuredH": "43", + "w": "90", + "h": "43", + "x": "1465", + "y": "2665", "properties": { - "controlName": "104-more-about-databases:database-normalization" + "controlName": "105-web-security-knowledge:https" }, "children": { "controls": { @@ -6632,12 +5005,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "266", - "h": "40", + "w": "90", + "h": "43", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "9", + "x": "0", + "y": "0", "properties": { "color": "16770457" } @@ -6646,46 +5019,107 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "188", - "measuredW": "185", + "measuredW": "54", "measuredH": "25", - "x": "53", - "y": "17", + "x": "21", + "y": "10", "properties": { - "size": "17", - "text": "Database Normalization" + "text": "HTTPS", + "size": "17" } - }, + } + ] + } + } + }, + { + "ID": "14208", + "typeID": "__group__", + "zOrder": "261", + "measuredW": "241", + "measuredH": "44", + "w": "241", + "h": "44", + "x": "1468", + "y": "2765", + "properties": { + "controlName": "105-web-security-knowledge:content-security-policy" + }, + "children": { + "controls": { + "control": [ { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "241", + "h": "44", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "175", + "measuredH": "25", + "x": "38", + "y": "10", + "properties": { + "size": "17", + "text": "Content Security Policy" + } + } + ] + } + } + }, + { + "ID": "14209", + "typeID": "__group__", + "zOrder": "262", + "measuredW": "147", + "measuredH": "43", + "w": "147", + "h": "43", + "x": "1560", + "y": "2665", + "properties": { + "controlName": "108-web-security-knowledge:owasp" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "43", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "104", + "measuredH": "25", + "x": "22", + "y": "10", + "properties": { + "size": "17", + "text": "OWASP Risks" } } ] @@ -6693,17 +5127,28 @@ } }, { - "ID": "14193", + "ID": "14210", + "typeID": "TextArea", + "zOrder": "146", + "w": "270", + "h": "192", + "measuredW": "200", + "measuredH": "140", + "x": "1451", + "y": "2464" + }, + { + "ID": "14211", "typeID": "__group__", - "zOrder": "139", - "measuredW": "215", - "measuredH": "49", - "w": "215", - "h": "49", - "x": "1100", - "y": "1391", + "zOrder": "147", + "measuredW": "239", + "measuredH": "40", + "w": "239", + "h": "40", + "x": "1466", + "y": "2479", "properties": { - "controlName": "106-more-about-databases:data-replication" + "controlName": "100-web-security-knowledge:md5" }, "children": { "controls": { @@ -6712,12 +5157,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "207", + "w": "239", "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "9", + "y": "0", "properties": { "color": "16770457" } @@ -6726,46 +5171,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "129", - "measuredW": "128", + "w": "203", + "measuredW": "197", "measuredH": "25", - "x": "42", - "y": "16", + "x": "20", + "y": "8", "properties": { "size": "17", - "text": "Data Replication" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "191", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "191", - "y": "0", - "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "MD5 and why not to use it" } } ] @@ -6773,17 +5186,17 @@ } }, { - "ID": "14194", + "ID": "14212", "typeID": "__group__", - "zOrder": "140", - "measuredW": "268", + "zOrder": "148", + "measuredW": "237", "measuredH": "40", - "w": "268", + "w": "237", "h": "40", - "x": "454", - "y": "1526", + "x": "1467", + "y": "2524", "properties": { - "controlName": "105-more-about-databases:database-indexes" + "controlName": "101-web-security-knowledge:sha-family" }, "children": { "controls": { @@ -6792,7 +5205,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", + "w": "237", "h": "40", "measuredW": "200", "measuredH": "140", @@ -6806,14 +5219,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "214", - "measuredW": "205", + "w": "93", + "measuredW": "87", "measuredH": "25", - "x": "32", - "y": "8", + "x": "72", + "y": "7", "properties": { "size": "17", - "text": "Indexes and how they work" + "text": "SHA Family" } } ] @@ -6821,17 +5234,17 @@ } }, { - "ID": "14195", + "ID": "14213", "typeID": "__group__", - "zOrder": "141", - "measuredW": "238", - "measuredH": "50", - "w": "238", - "h": "50", - "x": "796", - "y": "1612", + "zOrder": "149", + "measuredW": "119", + "measuredH": "40", + "w": "119", + "h": "40", + "x": "1468", + "y": "2570", "properties": { - "controlName": "109-apis" + "controlName": "104-web-security-knowledge:scrypt" }, "children": { "controls": { @@ -6840,27 +5253,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "238", - "h": "50", + "w": "119", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "133", + "w": "62", + "measuredW": "47", "measuredH": "25", - "x": "52", - "y": "13", + "x": "38", + "y": "7", "properties": { - "text": "Learn about APIs", - "size": "17" + "size": "17", + "text": "scrypt" } } ] @@ -6868,17 +5282,17 @@ } }, { - "ID": "14196", + "ID": "14214", "typeID": "__group__", - "zOrder": "142", - "measuredW": "196", - "measuredH": "71", - "w": "196", - "h": "71", - "x": "1105", - "y": "1531", + "zOrder": "150", + "measuredW": "111", + "measuredH": "40", + "w": "111", + "h": "40", + "x": "1594", + "y": "2570", "properties": { - "controlName": "100-apis:rest" + "controlName": "102-web-security-knowledge:bcrypt" }, "children": { "controls": { @@ -6887,12 +5301,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "188", + "w": "111", "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "9", + "y": "0", "properties": { "color": "16770457" } @@ -6901,38 +5315,74 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "49", - "measuredW": "44", + "w": "53", + "measuredW": "48", "measuredH": "25", - "x": "70", - "y": "17", + "x": "35", + "y": "7", "properties": { "size": "17", - "text": "REST" + "text": "bcrypt" } - }, + } + ] + } + } + }, + { + "ID": "14215", + "typeID": "Label", + "zOrder": "151", + "w": "155", + "measuredW": "149", + "measuredH": "25", + "x": "1508", + "y": "2618", + "properties": { + "size": "17", + "text": "Hashing Algorithms" + } + }, + { + "ID": "14216", + "typeID": "__group__", + "zOrder": "152", + "measuredW": "187", + "measuredH": "32", + "w": "187", + "h": "32", + "x": "673", + "y": "2319", + "properties": { + "controlName": "100-apis:authentication:cookie-based" + }, + "children": { + "controls": { + "control": [ { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "w": "179", - "measuredW": "167", - "measuredH": "22", - "x": "7", - "y": "49", + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "181", + "measuredW": "129", + "measuredH": "32", + "x": "6", + "y": "0", "properties": { - "size": "14", - "text": "Read Roy Fielding’s Paper" + "align": "center", + "color": "16770457", + "text": "Cookie Based", + "size": "18" } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "172", - "y": "0", + "x": "0", + "y": "4", "properties": { "color": "16777215", "icon": { @@ -6942,15 +5392,15 @@ } }, { - "ID": "4", + "ID": "2", "typeID": "Icon", - "zOrder": "4", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "172", - "y": "0", + "x": "0", + "y": "4", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -6962,17 +5412,17 @@ } }, { - "ID": "14197", + "ID": "14217", "typeID": "__group__", - "zOrder": "143", - "measuredW": "197", - "measuredH": "47", - "w": "197", - "h": "47", - "x": "1105", - "y": "1597", + "zOrder": "263", + "measuredW": "149", + "measuredH": "43", + "w": "149", + "h": "43", + "x": "1559", + "y": "2715", "properties": { - "controlName": "101-apis:json-apis" + "controlName": "107-web-security-knowledge:ssl-tls" }, "children": { "controls": { @@ -6981,12 +5431,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "188", - "h": "40", + "w": "149", + "h": "43", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "7", + "y": "0", "properties": { "color": "16770457" } @@ -6995,46 +5445,60 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "90", - "measuredW": "85", + "measuredW": "69", "measuredH": "25", - "x": "49", - "y": "15", + "x": "40", + "y": "9", "properties": { - "size": "17", - "text": "JSON APIs" + "text": "SSL/TLS", + "size": "17" } - }, + } + ] + } + } + }, + { + "ID": "14218", + "typeID": "__group__", + "zOrder": "153", + "measuredW": "195", + "measuredH": "50", + "w": "195", + "h": "50", + "x": "1213", + "y": "2606", + "properties": { + "controlName": "112-testing" + }, + "children": { + "controls": { + "control": [ { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "173", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "195", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16776960" } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "173", - "y": "0", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "56", + "measuredH": "25", + "x": "70", + "y": "13", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Testing", + "size": "17" } } ] @@ -7042,17 +5506,17 @@ } }, { - "ID": "14198", + "ID": "14219", "typeID": "__group__", - "zOrder": "144", - "measuredW": "197", - "measuredH": "45", - "w": "197", - "h": "45", - "x": "1105", - "y": "1645", + "zOrder": "154", + "measuredW": "223", + "measuredH": "40", + "w": "223", + "h": "40", + "x": "908", + "y": "2535", "properties": { - "controlName": "102-apis:soap" + "controlName": "100-testing:integration-testing" }, "children": { "controls": { @@ -7061,12 +5525,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "188", + "w": "212", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "5", + "x": "11", + "y": "0", "properties": { "color": "16770457" } @@ -7075,14 +5539,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "49", - "measuredW": "44", + "w": "150", + "measuredW": "144", "measuredH": "25", - "x": "69", - "y": "13", + "x": "42", + "y": "7", "properties": { "size": "17", - "text": "SOAP" + "text": "Integration Testing" } }, { @@ -7091,8 +5555,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "173", - "y": "0", + "x": "0", + "y": "6", "properties": { "color": "16777215", "icon": { @@ -7107,10 +5571,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "173", - "y": "0", + "x": "0", + "y": "6", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -7122,17 +5586,17 @@ } }, { - "ID": "14199", + "ID": "14220", "typeID": "__group__", - "zOrder": "145", - "measuredW": "274", - "measuredH": "48", - "w": "274", - "h": "48", - "x": "448", - "y": "1582", + "zOrder": "155", + "measuredW": "225", + "measuredH": "37", + "w": "225", + "h": "37", + "x": "906", + "y": "2580", "properties": { - "controlName": "104-apis:hateoas" + "controlName": "101-testing:unit-testing" }, "children": { "controls": { @@ -7141,12 +5605,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", - "h": "40", + "w": "214", + "h": "37", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "8", + "x": "11", + "y": "0", "properties": { "color": "16770457" } @@ -7155,14 +5619,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "78", - "measuredW": "76", + "w": "99", + "measuredW": "91", "measuredH": "25", - "x": "101", - "y": "16", + "x": "58", + "y": "6", "properties": { "size": "17", - "text": "HATEOAS" + "text": "Unit Testing" } }, { @@ -7172,7 +5636,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "5", "properties": { "color": "16777215", "icon": { @@ -7188,9 +5652,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "5", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -7202,17 +5666,17 @@ } }, { - "ID": "14200", + "ID": "14221", "typeID": "__group__", - "zOrder": "146", - "measuredW": "274", - "measuredH": "46", - "w": "274", - "h": "46", - "x": "448", - "y": "1630", + "zOrder": "156", + "measuredW": "224", + "measuredH": "37", + "w": "224", + "h": "37", + "x": "907", + "y": "2622", "properties": { - "controlName": "105-apis:open-api-spec" + "controlName": "102-testing:functional-testing" }, "children": { "controls": { @@ -7221,12 +5685,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", - "h": "40", + "w": "214", + "h": "37", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "6", + "x": "10", + "y": "0", "properties": { "color": "16770457" } @@ -7235,14 +5699,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "230", - "measuredW": "222", + "w": "151", + "measuredW": "140", "measuredH": "25", - "x": "28", - "y": "13", + "x": "39", + "y": "6", "properties": { "size": "17", - "text": "Open API Spec and Swagger" + "text": "Functional Testing" } }, { @@ -7252,7 +5716,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "6", "properties": { "color": "16777215", "icon": { @@ -7268,9 +5732,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "6", "properties": { - "color": "10066329", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -7282,79 +5746,244 @@ } }, { - "ID": "14201", + "ID": "14222", + "typeID": "Arrow", + "zOrder": "157", + "w": "269", + "h": "194", + "measuredW": "150", + "measuredH": "100", + "x": "983", + "y": "923", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 268.4360764425405, + "y": -0.2858165019254102 + }, + "p1": { + "x": 0.508287602643701, + "y": 0.1494412177047869 + }, + "p2": { + "x": -0.30546968388057394, + "y": 193.85134769137812 + } + } + }, + { + "ID": "14223", + "typeID": "Arrow", + "zOrder": "158", + "w": "16", + "h": "106", + "measuredW": "150", + "measuredH": "100", + "x": "1251", + "y": "811", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 5.0661253511545965, + "y": -0.06842586703601228 + }, + "p1": { + "x": 0.49476106194690206, + "y": 0.1305840707964593 + }, + "p2": { + "x": 0.436076442540525, + "y": 105.76126347271361 + } + } + }, + { + "ID": "14224", + "typeID": "Label", + "zOrder": "159", + "measuredW": "128", + "measuredH": "40", + "x": "1170", + "y": "759", + "properties": { + "size": "32", + "text": "Backend" + } + }, + { + "ID": "14225", + "typeID": "Arrow", + "zOrder": "160", + "w": "30", + "h": "72", + "measuredW": "150", + "measuredH": "100", + "x": "1181", + "y": "675", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.1355873564000376, + "y": -0.12682637425450594 + }, + "p1": { + "x": 0.4191433998244705, + "y": -0.10084752016943233 + }, + "p2": { + "x": 30.08850738176079, + "y": 71.41806720423438 + } + } + }, + { + "ID": "14226", + "typeID": "Canvas", + "zOrder": "161", + "w": "350", + "h": "141", + "measuredW": "100", + "measuredH": "70", + "x": "1447", + "y": "642" + }, + { + "ID": "14227", + "typeID": "Label", + "zOrder": "162", + "measuredW": "314", + "measuredH": "25", + "x": "1461", + "y": "659", + "properties": { + "size": "17", + "text": "Find the detailed version of this roadmap" + } + }, + { + "ID": "14228", + "typeID": "Label", + "zOrder": "163", + "measuredW": "319", + "measuredH": "25", + "x": "1461", + "y": "687", + "properties": { + "size": "17", + "text": "along with resources and other roadmaps" + } + }, + { + "ID": "14229", "typeID": "__group__", - "zOrder": "147", - "measuredW": "214", + "zOrder": "164", + "measuredW": "320", "measuredH": "45", - "w": "214", + "w": "320", "h": "45", - "x": "1101", - "y": "1486", + "x": "1462", + "y": "723", "properties": { - "controlName": "108-more-about-databases:cap-theorem" + "controlName": "ext_link:roadmap.sh" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Canvas", "zOrder": "0", - "w": "206", - "h": "40", - "measuredW": "200", - "measuredH": "140", + "w": "320", + "h": "45", + "measuredW": "100", + "measuredH": "70", "x": "0", - "y": "5", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "28", + "x": "141", + "y": "8", + "properties": { + "color": "16777215", + "size": "20", + "text": "roadmap.sh" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "45", + "measuredH": "28", + "x": "66", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "size": "20", + "text": "https" } }, { - "ID": "1", + "ID": "3", "typeID": "Label", - "zOrder": "1", - "w": "109", - "measuredW": "107", - "measuredH": "25", - "x": "48", - "y": "12", + "zOrder": "3", + "measuredW": "5", + "measuredH": "28", + "x": "113", + "y": "8", "properties": { - "size": "17", - "text": "CAP Theorem" + "bold": "true", + "color": "16777215", + "size": "20", + "text": ":" } }, { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "190", - "y": "0", + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "10", + "measuredH": "28", + "x": "120", + "y": "9", "properties": { "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "20", + "text": "/" } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "190", - "y": "0", + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "10", + "measuredH": "28", + "x": "128", + "y": "9", "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } + "color": "16777215", + "size": "20", + "text": "/" } } ] @@ -7362,17 +5991,238 @@ } }, { - "ID": "14202", + "ID": "14230", + "typeID": "Canvas", + "zOrder": "165", + "w": "408", + "h": "162", + "measuredW": "100", + "measuredH": "70", + "x": "635", + "y": "632" + }, + { + "ID": "14231", + "typeID": "Icon", + "zOrder": "166", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "653", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14232", + "typeID": "Icon", + "zOrder": "167", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "653", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "14233", + "typeID": "Label", + "zOrder": "168", + "measuredW": "269", + "measuredH": "24", + "x": "694", + "y": "653", + "properties": { + "size": "16", + "text": "Personal Recommendation / Opinion" + } + }, + { + "ID": "14234", + "typeID": "Label", + "zOrder": "169", + "measuredW": "159", + "measuredH": "24", + "x": "694", + "y": "750", + "properties": { + "size": "16", + "text": "I wouldn't recommend" + } + }, + { + "ID": "14235", + "typeID": "Icon", + "zOrder": "170", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "750", + "properties": { + "color": "10066329", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14236", + "typeID": "Label", + "zOrder": "171", + "w": "324", + "measuredW": "315", + "measuredH": "24", + "x": "695", + "y": "718", + "properties": { + "size": "16", + "text": "Order in roadmap not strict (Learn anytime)" + } + }, + { + "ID": "14237", + "typeID": "Icon", + "zOrder": "172", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "718", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14238", + "typeID": "Icon", + "zOrder": "173", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "718", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "14239", + "typeID": "Label", + "zOrder": "174", + "measuredW": "272", + "measuredH": "24", + "x": "694", + "y": "686", + "properties": { + "size": "16", + "text": "Alternative Option - Pick this or purple" + } + }, + { + "ID": "14240", + "typeID": "Icon", + "zOrder": "175", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "685", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14241", + "typeID": "Icon", + "zOrder": "176", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "685", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14242", + "typeID": "Icon", + "zOrder": "177", + "measuredW": "24", + "measuredH": "24", + "x": "658", + "y": "685", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "14243", + "typeID": "Arrow", + "zOrder": "65", + "w": "372", + "h": "9", + "measuredW": "150", + "measuredH": "100", + "x": "969", + "y": "1126", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 9.5 + }, + "p1": { + "x": 0.4734542725983133, + "y": -0.0001116239247792778 + }, + "p2": { + "x": 371.72987682295434, + "y": 0.452028801972574 + } + } + }, + { + "ID": "14253", "typeID": "__group__", - "zOrder": "148", - "measuredW": "273", - "measuredH": "46", - "w": "273", - "h": "46", - "x": "449", - "y": "1677", + "zOrder": "178", + "measuredW": "147", + "measuredH": "40", + "w": "147", + "h": "40", + "x": "859", + "y": "1029", "properties": { - "controlName": "106-apis:authentication" + "controlName": "100-learn-a-language:go" }, "children": { "controls": { @@ -7381,12 +6231,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "5", - "y": "6", + "x": "0", + "y": "0", "properties": { "color": "16770457" } @@ -7395,14 +6245,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "111", - "measuredW": "111", + "w": "26", + "measuredW": "23", "measuredH": "25", - "x": "83", - "y": "14", + "x": "55", + "y": "7", "properties": { "size": "17", - "text": "Authentication" + "text": "Go" } }, { @@ -7411,8 +6261,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "123", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -7427,91 +6277,30 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "123", + "y": "8", "properties": { - "color": "10027263", + "color": "16777215", "icon": { - "ID": "check-circle", + "ID": "circle", "size": "small" } } - } - ] - } - } - }, - { - "ID": "14203", - "typeID": "Arrow", - "zOrder": "149", - "w": "1", - "h": "156", - "measuredW": "150", - "measuredH": "100", - "x": "940", - "y": "1852", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": -0.5 - }, - "p1": { - "x": 0.4652565385165071, - "y": 0.0007431756467057314 - }, - "p2": { - "x": 0, - "y": 155 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14204", - "typeID": "__group__", - "zOrder": "150", - "measuredW": "240", - "measuredH": "54", - "w": "240", - "h": "54", - "x": "759", - "y": "1828", - "properties": { - "controlName": "111-web-security-knowledge" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "240", - "h": "54", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "189", - "measuredH": "25", - "x": "25", - "y": "15", + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "123", + "y": "8", "properties": { - "text": "Web Security Knowledge", - "size": "17" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -7519,28 +6308,17 @@ } }, { - "ID": "14205", - "typeID": "TextArea", - "zOrder": "151", - "w": "456", - "h": "171", - "measuredW": "200", - "measuredH": "140", - "x": "854", - "y": "1935" - }, - { - "ID": "14206", + "ID": "14254", "typeID": "__group__", - "zOrder": "152", - "measuredW": "163", - "measuredH": "42", - "w": "163", - "h": "42", - "x": "869", - "y": "1999", + "zOrder": "179", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "689", + "y": "1194", "properties": { - "controlName": "106-web-security-knowledge:cors" + "controlName": "102-learn-a-language:java" }, "children": { "controls": { @@ -7549,11 +6327,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "163", - "h": "42", + "w": "136", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7563,107 +6341,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "48", + "w": "38", + "measuredW": "36", "measuredH": "25", - "x": "58", - "y": "9", + "x": "57", + "y": "7", "properties": { - "text": "CORS", - "size": "17" + "size": "17", + "text": "Java" } - } - ] - } - } - }, - { - "ID": "14207", - "typeID": "__group__", - "zOrder": "153", - "measuredW": "166", - "measuredH": "43", - "w": "166", - "h": "43", - "x": "868", - "y": "1949", - "properties": { - "controlName": "105-web-security-knowledge:https" - }, - "children": { - "controls": { - "control": [ + }, { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "166", - "h": "43", - "measuredW": "200", - "measuredH": "140", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "54", - "measuredH": "25", - "x": "56", - "y": "10", - "properties": { - "text": "HTTPS", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "14208", - "typeID": "__group__", - "zOrder": "154", - "measuredW": "257", - "measuredH": "44", - "w": "257", - "h": "44", - "x": "1039", - "y": "1949", - "properties": { - "controlName": "105-web-security-knowledge:content-security-policy" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "257", - "h": "44", - "measuredW": "200", - "measuredH": "140", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "175", - "measuredH": "25", - "x": "41", - "y": "10", + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", "properties": { - "text": "Content Security Policy", - "size": "17" + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -7671,17 +6404,17 @@ } }, { - "ID": "14209", + "ID": "14255", "typeID": "__group__", - "zOrder": "155", - "measuredW": "427", - "measuredH": "43", - "w": "427", - "h": "43", - "x": "868", - "y": "2047", + "zOrder": "180", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "687", + "y": "1029", "properties": { - "controlName": "108-web-security-knowledge:owasp" + "controlName": "101-learn-a-language:rust" }, "children": { "controls": { @@ -7690,11 +6423,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "427", - "h": "43", + "w": "136", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7704,13 +6437,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "169", + "w": "39", + "measuredW": "36", "measuredH": "25", - "x": "129", - "y": "10", + "x": "56", + "y": "7", "properties": { - "text": "OWASP Security Risks", - "size": "17" + "size": "17", + "text": "Rust" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -7718,28 +6500,17 @@ } }, { - "ID": "14210", - "typeID": "TextArea", - "zOrder": "156", - "w": "270", - "h": "185", - "measuredW": "200", - "measuredH": "140", - "x": "1038", - "y": "1739" - }, - { - "ID": "14211", + "ID": "14256", "typeID": "__group__", - "zOrder": "157", - "measuredW": "239", + "zOrder": "181", + "measuredW": "144", "measuredH": "40", - "w": "239", + "w": "144", "h": "40", - "x": "1053", - "y": "1747", + "x": "689", + "y": "1240", "properties": { - "controlName": "100-web-security-knowledge:md5" + "controlName": "103-learn-a-language:csharp" }, "children": { "controls": { @@ -7748,11 +6519,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "239", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7762,14 +6533,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "203", - "measuredW": "197", + "w": "27", + "measuredW": "24", "measuredH": "25", - "x": "20", - "y": "8", + "x": "62", + "y": "7", "properties": { "size": "17", - "text": "MD5 and why not to use it" + "text": "C#" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -7777,17 +6596,17 @@ } }, { - "ID": "14212", + "ID": "14257", "typeID": "__group__", - "zOrder": "158", - "measuredW": "237", - "measuredH": "40", - "w": "237", - "h": "40", - "x": "1054", - "y": "1792", + "zOrder": "182", + "measuredW": "302", + "measuredH": "50", + "w": "302", + "h": "50", + "x": "696", + "y": "1103", "properties": { - "controlName": "101-web-security-knowledge:sha-family" + "controlName": "103-learn-a-language" }, "children": { "controls": { @@ -7796,28 +6615,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "237", - "h": "40", + "w": "302", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "93", - "measuredW": "87", + "measuredW": "141", "measuredH": "25", - "x": "72", - "y": "7", + "x": "80", + "y": "13", "properties": { - "size": "17", - "text": "SHA Family" + "text": "Learn a Language", + "size": "17" } } ] @@ -7825,17 +6643,17 @@ } }, { - "ID": "14213", + "ID": "14258", "typeID": "__group__", - "zOrder": "159", - "measuredW": "119", + "zOrder": "183", + "measuredW": "144", "measuredH": "40", - "w": "119", + "w": "144", "h": "40", - "x": "1055", - "y": "1838", + "x": "689", + "y": "1286", "properties": { - "controlName": "104-web-security-knowledge:scrypt" + "controlName": "103-learn-a-language:php" }, "children": { "controls": { @@ -7844,11 +6662,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "119", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", + "x": "8", "y": "0", "properties": { "color": "16770457" @@ -7858,14 +6676,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "62", - "measuredW": "47", + "w": "34", + "measuredW": "34", "measuredH": "25", - "x": "38", + "x": "59", "y": "7", "properties": { "size": "17", - "text": "scrypt" + "text": "PHP" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -7873,17 +6739,17 @@ } }, { - "ID": "14214", + "ID": "14259", "typeID": "__group__", - "zOrder": "160", - "measuredW": "111", + "zOrder": "184", + "measuredW": "146", "measuredH": "40", - "w": "111", + "w": "146", "h": "40", - "x": "1181", - "y": "1838", + "x": "863", + "y": "1194", "properties": { - "controlName": "102-web-security-knowledge:bcrypt" + "controlName": "105-learn-a-language:javascript" }, "children": { "controls": { @@ -7892,7 +6758,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "111", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", @@ -7906,74 +6772,24 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "53", - "measuredW": "48", + "w": "85", + "measuredW": "81", "measuredH": "25", - "x": "35", - "y": "7", + "x": "27", + "y": "8", "properties": { "size": "17", - "text": "bcrypt" - } - } - ] - } - } - }, - { - "ID": "14215", - "typeID": "Label", - "zOrder": "161", - "w": "155", - "measuredW": "149", - "measuredH": "25", - "x": "1095", - "y": "1886", - "properties": { - "size": "17", - "text": "Hashing Algorithms" - } - }, - { - "ID": "14216", - "typeID": "__group__", - "zOrder": "162", - "measuredW": "229", - "measuredH": "38", - "w": "229", - "h": "38", - "x": "191", - "y": "1500", - "properties": { - "controlName": "100-apis:authentication:cookie-based" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextInput", - "zOrder": "0", - "w": "223", - "measuredW": "129", - "measuredH": "32", - "x": "6", - "y": "6", - "properties": { - "align": "center", - "color": "16770457", - "size": "18", - "text": "Cookie Based" + "text": "JavaScript" } }, { - "ID": "1", + "ID": "2", "typeID": "Icon", - "zOrder": "1", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "122", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -7983,15 +6799,15 @@ } }, { - "ID": "2", + "ID": "4", "typeID": "Icon", - "zOrder": "2", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "122", + "y": "7", "properties": { - "color": "10066329", + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -8003,17 +6819,17 @@ } }, { - "ID": "14217", + "ID": "14260", "typeID": "__group__", - "zOrder": "163", - "measuredW": "258", - "measuredH": "43", - "w": "258", - "h": "43", - "x": "1038", - "y": "1999", + "zOrder": "185", + "measuredW": "146", + "measuredH": "40", + "w": "146", + "h": "40", + "x": "863", + "y": "1240", "properties": { - "controlName": "107-web-security-knowledge:ssl-tls" + "controlName": "106-learn-a-language:python" }, "children": { "controls": { @@ -8022,8 +6838,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "258", - "h": "43", + "w": "136", + "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", @@ -8036,60 +6852,62 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "69", + "w": "56", + "measuredW": "53", "measuredH": "25", - "x": "94", - "y": "9", + "x": "40", + "y": "8", "properties": { - "text": "SSL/TLS", - "size": "17" + "size": "17", + "text": "Python" } - } - ] - } - } - }, - { - "ID": "14218", - "typeID": "__group__", - "zOrder": "164", - "measuredW": "159", - "measuredH": "50", - "w": "159", - "h": "50", - "x": "547", - "y": "1965", - "properties": { - "controlName": "112-testing" - }, - "children": { - "controls": { - "control": [ + }, { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "159", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", "properties": { - "color": "16776960" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "25", - "x": "52", - "y": "13", + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", "properties": { - "text": "Testing", - "size": "17" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -8097,17 +6915,17 @@ } }, { - "ID": "14219", + "ID": "14261", "typeID": "__group__", - "zOrder": "165", - "measuredW": "199", - "measuredH": "49", - "w": "199", - "h": "49", - "x": "292", - "y": "1925", + "zOrder": "186", + "measuredW": "146", + "measuredH": "40", + "w": "146", + "h": "40", + "x": "863", + "y": "1286", "properties": { - "controlName": "100-testing:integration-testing" + "controlName": "107-learn-a-language:ruby" }, "children": { "controls": { @@ -8116,12 +6934,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "192", + "w": "136", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "9", + "x": "0", + "y": "0", "properties": { "color": "16770457" } @@ -8130,14 +6948,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "150", - "measuredW": "144", + "w": "42", + "measuredW": "39", "measuredH": "25", - "x": "28", - "y": "17", + "x": "47", + "y": "8", "properties": { "size": "17", - "text": "Integration Testing" + "text": "Ruby" } }, { @@ -8146,8 +6964,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "122", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -8162,10 +6980,26 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "122", + "y": "8", "properties": { - "color": "10027263", + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "122", + "y": "8", + "properties": { + "color": "3700253", "icon": { "ID": "check-circle", "size": "small" @@ -8177,17 +7011,78 @@ } }, { - "ID": "14220", + "ID": "14268", + "typeID": "Arrow", + "zOrder": "187", + "w": "137", + "h": "41", + "measuredW": "150", + "measuredH": "100", + "x": "971", + "y": "930", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 136.9620797397572, + "y": 0.45530148349780575 + }, + "p1": { + "x": 0.4511254056978406, + "y": -0.06453327776431561 + }, + "p2": { + "x": 0, + "y": 41 + } + } + }, + { + "ID": "14269", + "typeID": "Arrow", + "zOrder": "188", + "w": "151", + "h": "6", + "measuredW": "150", + "measuredH": "100", + "x": "967", + "y": "918", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 151.29875220380154, + "y": -0.4655390965576771 + }, + "p1": { + "x": 0.46527893422148225, + "y": -0.0013322231473772643 + }, + "p2": { + "x": 0.12491741715246008, + "y": 5.286965251475522 + } + } + }, + { + "ID": "14271", "typeID": "__group__", - "zOrder": "166", - "measuredW": "199", - "measuredH": "44", - "w": "199", - "h": "44", - "x": "292", - "y": "1974", + "zOrder": "189", + "measuredW": "272", + "measuredH": "50", + "w": "272", + "h": "50", + "x": "1090", + "y": "897", "properties": { - "controlName": "101-testing:unit-testing" + "controlName": "100-internet" }, "children": { "controls": { @@ -8196,60 +7091,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "193", - "h": "37", + "w": "272", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "7", + "x": "0", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "99", - "measuredW": "91", + "measuredW": "62", "measuredH": "25", - "x": "53", - "y": "14", - "properties": { - "size": "17", - "text": "Unit Testing" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "x": "105", + "y": "13", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Internet", + "size": "17" } } ] @@ -8257,17 +7119,17 @@ } }, { - "ID": "14221", + "ID": "14272", "typeID": "__group__", - "zOrder": "167", - "measuredW": "199", - "measuredH": "43", - "w": "199", - "h": "43", - "x": "292", - "y": "2016", + "zOrder": "190", + "measuredW": "306", + "measuredH": "44", + "w": "306", + "h": "44", + "x": "687", + "y": "856", "properties": { - "controlName": "102-testing:functional-testing" + "controlName": "100-internet:how-does-the-internet-work" }, "children": { "controls": { @@ -8276,12 +7138,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "193", - "h": "37", + "w": "299", + "h": "44", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "6", + "x": "7", + "y": "0", "properties": { "color": "16770457" } @@ -8290,14 +7152,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "151", - "measuredW": "140", + "w": "223", + "measuredW": "219", "measuredH": "25", - "x": "27", - "y": "13", + "x": "45", + "y": "9", "properties": { "size": "17", - "text": "Functional Testing" + "text": "How does the internet work?" } }, { @@ -8307,7 +7169,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "9", "properties": { "color": "16777215", "icon": { @@ -8323,7 +7185,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "9", "properties": { "color": "10027263", "icon": { @@ -8337,755 +7199,782 @@ } }, { - "ID": "14222", - "typeID": "Arrow", - "zOrder": "168", - "w": "42", - "h": "152", - "measuredW": "150", - "measuredH": "100", - "x": "764", - "y": "533", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4470340174304187, - "y": 0.25307843688501525 - }, - "p2": { - "x": 9, - "y": 151.5 - }, - "rightArrow": "false" - } - }, - { - "ID": "14223", - "typeID": "Arrow", - "zOrder": "169", - "w": "26", - "h": "112", - "measuredW": "150", - "measuredH": "100", - "x": "692", - "y": "337", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 26, - "y": 0 - }, - "p1": { - "x": 0.540933899332929, - "y": -0.1946634323832626 - }, - "p2": { - "x": 18, - "y": 112 - }, - "rightArrow": "false" - } - }, - { - "ID": "14224", - "typeID": "Label", - "zOrder": "170", - "measuredW": "128", - "measuredH": "40", - "x": "669", - "y": "283", - "properties": { - "size": "32", - "text": "Backend" - } - }, - { - "ID": "14225", - "typeID": "Arrow", - "zOrder": "171", - "w": "19", - "h": "80", - "measuredW": "150", - "measuredH": "100", - "x": "761", - "y": "196", - "properties": { - "color": "2848996", - "curvature": "-1", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 17, - "y": 0 - }, - "p1": { - "x": 0.4835868694955965, - "y": 0.10168134507606086 - }, - "p2": { - "x": 0, - "y": 79 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14226", - "typeID": "Canvas", - "zOrder": "172", - "w": "350", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "969", - "y": "189" - }, - { - "ID": "14227", - "typeID": "Label", - "zOrder": "173", - "measuredW": "314", - "measuredH": "25", - "x": "983", - "y": "206", - "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap" - } - }, - { - "ID": "14228", - "typeID": "Label", - "zOrder": "174", - "measuredW": "319", - "measuredH": "25", - "x": "983", - "y": "234", - "properties": { - "size": "17", - "text": "along with resources and other roadmaps" - } - }, - { - "ID": "14229", + "ID": "14273", "typeID": "__group__", - "zOrder": "175", - "measuredW": "320", - "measuredH": "45", - "w": "320", - "h": "45", - "x": "984", - "y": "270", + "zOrder": "191", + "measuredW": "307", + "measuredH": "40", + "w": "307", + "h": "40", + "x": "686", + "y": "905", "properties": { - "controlName": "ext_link:roadmap.sh" + "controlName": "101-internet:what-is-http" }, "children": { "controls": { "control": [ { "ID": "0", - "typeID": "Canvas", + "typeID": "TextArea", "zOrder": "0", - "w": "320", - "h": "45", - "measuredW": "100", - "measuredH": "70", - "x": "0", + "w": "299", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", "y": "0", "properties": { - "borderColor": "4273622", - "color": "4273622" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "105", - "measuredH": "28", - "x": "141", + "w": "119", + "measuredW": "113", + "measuredH": "25", + "x": "98", "y": "8", "properties": { - "color": "16777215", - "size": "20", - "text": "roadmap.sh" + "size": "17", + "text": "What is HTTP?" } }, { "ID": "2", - "typeID": "Label", + "typeID": "Icon", "zOrder": "2", - "measuredW": "35", - "measuredH": "28", - "x": "76", - "y": "8", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "6", "properties": { "color": "16777215", - "size": "20", - "text": "http" + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "3", - "typeID": "Label", + "typeID": "Icon", "zOrder": "3", - "measuredW": "5", - "measuredH": "28", - "x": "113", - "y": "8", - "properties": { - "bold": "true", - "color": "16777215", - "size": "20", - "text": ":" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "10", - "measuredH": "28", - "x": "120", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "5", - "measuredW": "10", - "measuredH": "28", - "x": "128", - "y": "9", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "6", "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - } - ] - } - } - }, - { - "ID": "14230", - "typeID": "Canvas", - "zOrder": "176", - "w": "408", - "h": "162", - "measuredW": "100", - "measuredH": "70", - "x": "157", - "y": "179" - }, - { - "ID": "14231", - "typeID": "Icon", - "zOrder": "177", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "200", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "14232", - "typeID": "Icon", - "zOrder": "178", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "200", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - }, - { - "ID": "14233", - "typeID": "Label", - "zOrder": "179", - "measuredW": "269", - "measuredH": "24", - "x": "216", - "y": "200", - "properties": { - "size": "16", - "text": "Personal Recommendation / Opinion" - } - }, - { - "ID": "14234", - "typeID": "Label", - "zOrder": "180", - "measuredW": "159", - "measuredH": "24", - "x": "216", - "y": "297", - "properties": { - "size": "16", - "text": "I wouldn't recommend" - } - }, - { - "ID": "14235", - "typeID": "Icon", - "zOrder": "181", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "297", - "properties": { - "color": "10066329", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "14236", - "typeID": "Label", - "zOrder": "182", - "w": "324", - "measuredW": "315", - "measuredH": "24", - "x": "217", - "y": "265", - "properties": { - "size": "16", - "text": "Order in roadmap not strict (Learn anytime)" - } - }, - { - "ID": "14237", - "typeID": "Icon", - "zOrder": "183", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "265", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "14238", - "typeID": "Icon", - "zOrder": "184", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "265", - "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - }, - { - "ID": "14239", - "typeID": "Label", - "zOrder": "185", - "measuredW": "272", - "measuredH": "24", - "x": "216", - "y": "233", - "properties": { - "size": "16", - "text": "Alternative Option - Pick this or purple" - } - }, - { - "ID": "14240", - "typeID": "Icon", - "zOrder": "186", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "232", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "14241", - "typeID": "Icon", - "zOrder": "187", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "232", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "14242", - "typeID": "Icon", - "zOrder": "188", - "measuredW": "24", - "measuredH": "24", - "x": "180", - "y": "232", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] } } }, { - "ID": "14243", - "typeID": "Arrow", - "zOrder": "189", - "w": "41", - "h": "264", - "measuredW": "150", - "measuredH": "100", - "x": "738", - "y": "695", + "ID": "14274", + "typeID": "__group__", + "zOrder": "192", + "measuredW": "307", + "measuredH": "40", + "w": "307", + "h": "40", + "x": "686", + "y": "950", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 28, - "y": -0.5 - }, - "p1": { - "x": 0.4709081800615472, - "y": -0.12924926644242468 - }, - "p2": { - "x": 41, - "y": 263.5 - }, - "rightArrow": "false" + "controlName": "102-internet:browsers-and-how-they-work" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "299", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "230", + "measuredW": "225", + "measuredH": "25", + "x": "42", + "y": "8", + "properties": { + "size": "17", + "text": "Browsers and how they work?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "6", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "6", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14244", - "typeID": "Arrow", - "zOrder": "190", - "w": "87", - "h": "151", - "measuredW": "150", - "measuredH": "100", - "x": "707", - "y": "971", + "ID": "14275", + "typeID": "__group__", + "zOrder": "193", + "measuredW": "290", + "measuredH": "49", + "w": "290", + "h": "49", + "x": "1483", + "y": "846", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 72, - "y": 0 - }, - "p1": { - "x": 0.4164731105949616, - "y": 0.25156333750223336 - }, - "p2": { - "x": 0, - "y": 151 - }, - "rightArrow": "false" + "controlName": "103-internet:dns-and-how-it-works" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "9", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "179", + "measuredW": "175", + "measuredH": "25", + "x": "51", + "y": "17", + "properties": { + "size": "17", + "text": "DNS and how it works?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "266", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "266", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14245", - "typeID": "Arrow", - "zOrder": "191", - "w": "43", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "850", - "y": "876", + "ID": "14276", + "typeID": "__group__", + "zOrder": "194", + "measuredW": "290", + "measuredH": "45", + "w": "290", + "h": "45", + "x": "1482", + "y": "896", "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": -0.5, - "y": 82 - }, - "p1": { - "x": 0.5274187832250412, - "y": -0.12252805670406892 - }, - "p2": { - "x": 42.5, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "104-internet:what-is-domain-name" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "179", + "measuredW": "180", + "measuredH": "25", + "x": "51", + "y": "13", + "properties": { + "size": "17", + "text": "What is Domain Name?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "266", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "266", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14246", - "typeID": "Arrow", - "zOrder": "192", - "w": "48", - "h": "73", - "measuredW": "150", - "measuredH": "100", - "x": "632", - "y": "886", + "ID": "14277", + "typeID": "__group__", + "zOrder": "195", + "measuredW": "289", + "measuredH": "46", + "w": "289", + "h": "46", + "x": "1483", + "y": "941", "properties": { - "color": "2848996", - "curvature": "0", - "leftArrow": "false", - "p0": { - "x": 48, - "y": 72.5 - }, - "p1": { - "x": 0.5228612603170445, - "y": 0.14935150006550507 - }, - "p2": { - "x": 0, - "y": -0.5 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "105-internet:what-is-hosting" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "6", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "133", + "measuredW": "126", + "measuredH": "25", + "x": "74", + "y": "14", + "properties": { + "size": "17", + "text": "What is hosting?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14247", - "typeID": "Arrow", - "zOrder": "193", - "w": "118", - "h": "74", - "measuredW": "150", - "measuredH": "100", - "x": "477", - "y": "982", + "ID": "14287", + "typeID": "__group__", + "zOrder": "196", + "measuredW": "267", + "measuredH": "43", + "w": "267", + "h": "43", + "x": "1431", + "y": "1656", "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 118, - "y": -0.5 - }, - "p1": { - "x": 0.5873541588257404, - "y": 0.06127211140383051 - }, - "p2": { - "x": 0, - "y": 73.5 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "105-os-general-knowledge:memory-management" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "267", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "170", + "measuredW": "169", + "measuredH": "25", + "x": "50", + "y": "9", + "properties": { + "size": "17", + "text": "Memory Management" + } + } + ] + } } }, { - "ID": "14248", - "typeID": "Arrow", - "zOrder": "194", - "w": "91", - "h": "61", - "measuredW": "150", - "measuredH": "100", - "x": "960", - "y": "980", + "ID": "14288", + "typeID": "__group__", + "zOrder": "197", + "measuredW": "268", + "measuredH": "43", + "w": "268", + "h": "43", + "x": "1431", + "y": "1705", "properties": { - "color": "2848996", - "leftArrow": "false", - "p0": { - "x": 91, - "y": 60 - }, - "p1": { - "x": 0.486318838754369, - "y": 0.01448408325199147 - }, - "p2": { - "x": 0, - "y": -0.5 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "106-os-general-knowledge:interprocess-communication" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "268", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "224", + "measuredW": "222", + "measuredH": "25", + "x": "23", + "y": "9", + "properties": { + "size": "17", + "text": "Interprocess Communication" + } + } + ] + } } }, { - "ID": "14249", - "typeID": "Arrow", - "zOrder": "195", - "w": "93", - "h": "24", - "measuredW": "150", - "measuredH": "100", - "x": "956", - "y": "969", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 93, - "y": 23 - }, - "p1": { - "x": 0.4798692360633174, - "y": -0.0049896765313145654 - }, - "p2": { - "x": 0, - "y": -0.5 - }, - "rightArrow": "false", - "stroke": "dotted" + "ID": "14289", + "typeID": "__group__", + "zOrder": "198", + "measuredW": "268", + "measuredH": "43", + "w": "268", + "h": "43", + "x": "1431", + "y": "1753", + "properties": { + "controlName": "107-os-general-knowledge:io-management" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "268", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "135", + "measuredW": "133", + "measuredH": "25", + "x": "66", + "y": "9", + "properties": { + "size": "17", + "text": "I/O Management" + } + } + ] + } } }, { - "ID": "14250", - "typeID": "Arrow", - "zOrder": "196", - "w": "115", - "h": "18", - "measuredW": "150", - "measuredH": "100", - "x": "951", - "y": "942", + "ID": "14290", + "typeID": "__group__", + "zOrder": "199", + "measuredW": "318", + "measuredH": "71", + "w": "318", + "h": "71", + "x": "1415", + "y": "1309", "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 115, - "y": 0 - }, - "p1": { - "x": 0.4495149461236092, - "y": -0.004886187015480865 - }, - "p2": { - "x": 0, - "y": 17.5 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "108-os-general-knowledge:posix-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "306", + "h": "71", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "25", + "x": "100", + "y": "12", + "properties": { + "text": "POSIX Basics", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "180", + "measuredW": "172", + "measuredH": "23", + "x": "63", + "y": "36", + "properties": { + "size": "15", + "text": "stdin, stdout, stderr, pipes" + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "294", + "y": "21", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "294", + "y": "21", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14251", - "typeID": "Arrow", - "zOrder": "197", - "w": "131", - "h": "45", - "measuredW": "150", - "measuredH": "100", - "x": "467", - "y": "966", + "ID": "14291", + "typeID": "__group__", + "zOrder": "200", + "measuredW": "268", + "measuredH": "43", + "w": "268", + "h": "43", + "x": "1431", + "y": "1802", "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 131, - "y": -0.5 - }, - "p1": { - "x": 0.5873541588257396, - "y": 0.061272111403828454 - }, - "p2": { - "x": 0, - "y": 44.5 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "109-os-general-knowledge:basic-networking-concepts" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "268", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "218", + "measuredW": "213", + "measuredH": "25", + "x": "25", + "y": "9", + "properties": { + "size": "17", + "text": "Basic Networking Concepts" + } + } + ] + } } }, { - "ID": "14252", - "typeID": "Arrow", - "zOrder": "198", - "w": "141", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "478", - "y": "957", + "ID": "14298", + "typeID": "__group__", + "zOrder": "201", + "measuredW": "315", + "measuredH": "43", + "w": "315", + "h": "43", + "x": "1416", + "y": "1260", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 141, - "y": 0 - }, - "p1": { - "x": 0.5, - "y": 0 - }, - "p2": { - "x": 0, - "y": 5 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "100-os-general-knowledge:terminal-usage" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "303", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "123", + "measuredW": "121", + "measuredH": "25", + "x": "90", + "y": "9", + "properties": { + "size": "17", + "text": "Terminal Usage" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "291", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "291", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14253", + "ID": "14299", "typeID": "__group__", - "zOrder": "199", - "measuredW": "144", - "measuredH": "48", - "w": "144", - "h": "48", - "x": "812", - "y": "839", + "zOrder": "202", + "measuredW": "317", + "measuredH": "101", + "w": "317", + "h": "101", + "x": "1414", + "y": "1483", "properties": { - "controlName": "100-learn-a-language:go" + "controlName": "104-os-general-knowledge:basic-terminal-commands" }, "children": { "controls": { @@ -9094,12 +7983,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", - "h": "40", + "w": "305", + "h": "101", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "8", + "x": "0", + "y": "0", "properties": { "color": "16770457" } @@ -9108,24 +7997,49 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "26", - "measuredW": "23", + "measuredW": "217", + "measuredH": "26", + "x": "44", + "y": "12", + "properties": { + "text": "Basic Terminal Commands", + "size": "18" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "223", "measuredH": "25", - "x": "63", - "y": "15", + "x": "41", + "y": "38", + "properties": { + "text": "grep, awk, sed, lsof, curl, wget", + "size": "17" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "236", + "measuredH": "25", + "x": "35", + "y": "64", "properties": { "size": "17", - "text": "Go" + "text": "tail, head, less, find, ssh, kill, dig" } }, { - "ID": "2", + "ID": "4", "typeID": "Icon", - "zOrder": "2", + "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "293", + "y": "51", "properties": { "color": "16777215", "icon": { @@ -9135,13 +8049,29 @@ } }, { - "ID": "3", + "ID": "5", "typeID": "Icon", - "zOrder": "3", + "zOrder": "5", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "293", + "y": "51", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "6", + "typeID": "Icon", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "x": "292", + "y": "26", "properties": { "color": "16777215", "icon": { @@ -9151,15 +8081,15 @@ } }, { - "ID": "4", + "ID": "7", "typeID": "Icon", - "zOrder": "4", + "zOrder": "7", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "292", + "y": "26", "properties": { - "color": "3700253", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -9171,17 +8101,161 @@ } }, { - "ID": "14254", + "ID": "14300", + "typeID": "__group__", + "zOrder": "203", + "measuredW": "272", + "measuredH": "43", + "w": "272", + "h": "43", + "x": "1429", + "y": "1899", + "properties": { + "controlName": "102-os-general-knowledge:process-management" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "272", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "172", + "measuredW": "170", + "measuredH": "25", + "x": "53", + "y": "9", + "properties": { + "size": "17", + "text": "Process Management" + } + } + ] + } + } + }, + { + "ID": "14301", + "typeID": "__group__", + "zOrder": "204", + "measuredW": "269", + "measuredH": "43", + "w": "269", + "h": "43", + "x": "1430", + "y": "1850", + "properties": { + "controlName": "103-os-general-knowledge:threads-and-concurrency" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "269", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "202", + "measuredW": "200", + "measuredH": "25", + "x": "34", + "y": "9", + "properties": { + "size": "17", + "text": "Threads and Concurrency" + } + } + ] + } + } + }, + { + "ID": "14302", + "typeID": "__group__", + "zOrder": "205", + "measuredW": "268", + "measuredH": "43", + "w": "268", + "h": "43", + "x": "1431", + "y": "1608", + "properties": { + "controlName": "101-os-general-knowledge:how-oss-work-in-general" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "268", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "197", + "measuredW": "195", + "measuredH": "25", + "x": "35", + "y": "9", + "properties": { + "size": "17", + "text": "How OSs work in General" + } + } + ] + } + } + }, + { + "ID": "14306", "typeID": "__group__", - "zOrder": "200", - "measuredW": "144", - "measuredH": "47", - "w": "144", - "h": "47", - "x": "341", - "y": "934", + "zOrder": "206", + "measuredW": "108", + "measuredH": "50", + "w": "108", + "h": "50", + "x": "1374", + "y": "1026", "properties": { - "controlName": "102-learn-a-language:java" + "controlName": "100-version-control-systems:git" }, "children": { "controls": { @@ -9190,28 +8264,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", - "h": "40", + "w": "97", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "7", + "x": "0", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "38", - "measuredW": "36", + "measuredW": "22", "measuredH": "25", - "x": "57", - "y": "15", + "x": "36", + "y": "12", "properties": { "size": "17", - "text": "Java" + "text": "Git" } }, { @@ -9220,8 +8293,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "84", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -9236,26 +8309,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "x": "84", + "y": "13", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -9267,17 +8324,17 @@ } }, { - "ID": "14255", + "ID": "14307", "typeID": "__group__", - "zOrder": "201", - "measuredW": "144", - "measuredH": "49", - "w": "144", - "h": "49", - "x": "554", - "y": "842", + "zOrder": "207", + "measuredW": "138", + "measuredH": "57", + "w": "138", + "h": "57", + "x": "1583", + "y": "1046", "properties": { - "controlName": "101-learn-a-language:rust" + "controlName": "100-repo-hosting-services:github" }, "children": { "controls": { @@ -9286,12 +8343,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", - "h": "40", + "w": "131", + "h": "49", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "9", + "x": "0", + "y": "8", "properties": { "color": "16770457" } @@ -9300,14 +8357,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "39", - "measuredW": "36", + "measuredW": "54", "measuredH": "25", - "x": "56", - "y": "17", + "x": "39", + "y": "21", "properties": { - "size": "17", - "text": "Rust" + "text": "GitHub", + "size": "17" } }, { @@ -9316,7 +8372,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "114", "y": "0", "properties": { "color": "16777215", @@ -9332,26 +8388,10 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", + "x": "114", "y": "0", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -9363,17 +8403,17 @@ } }, { - "ID": "14256", + "ID": "14308", "typeID": "__group__", - "zOrder": "202", - "measuredW": "144", - "measuredH": "46", - "w": "144", - "h": "46", - "x": "341", - "y": "984", + "zOrder": "208", + "measuredW": "286", + "measuredH": "50", + "w": "286", + "h": "50", + "x": "1185", + "y": "1158", "properties": { - "controlName": "103-learn-a-language:csharp" + "controlName": "105-repo-hosting-services" }, "children": { "controls": { @@ -9382,76 +8422,74 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", - "h": "40", + "w": "286", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "6", + "x": "0", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "27", - "measuredW": "24", + "measuredW": "172", "measuredH": "25", - "x": "62", - "y": "14", - "properties": { - "size": "17", - "text": "C#" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "x": "57", + "y": "12", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "text": "Repo hosting services", + "size": "17" } - }, + } + ] + } + } + }, + { + "ID": "14309", + "typeID": "__group__", + "zOrder": "209", + "measuredW": "286", + "measuredH": "50", + "w": "286", + "h": "50", + "x": "1185", + "y": "1103", + "properties": { + "controlName": "104-version-control-systems" + }, + "children": { + "controls": { + "control": [ { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "286", + "h": "50", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16776960" } }, { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "186", + "measuredH": "25", + "x": "50", + "y": "12", "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Version Control Systems", + "size": "17" } } ] @@ -9459,17 +8497,17 @@ } }, { - "ID": "14257", + "ID": "14310", "typeID": "__group__", - "zOrder": "203", - "measuredW": "380", - "measuredH": "98", - "w": "380", - "h": "98", - "x": "586", - "y": "940", + "zOrder": "210", + "measuredW": "140", + "measuredH": "53", + "w": "140", + "h": "53", + "x": "1583", + "y": "1157", "properties": { - "controlName": "103-learn-a-language" + "controlName": "102-repo-hosting-services:bitbucket" }, "children": { "controls": { @@ -9478,55 +8516,76 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "380", - "h": "98", + "w": "131", + "h": "49", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "0", + "y": "4", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "141", + "measuredW": "73", "measuredH": "25", - "x": "119", - "y": "13", + "x": "29", + "y": "16", "properties": { - "text": "Learn a Language", + "color": "3355443", + "text": "Bitbucket", "size": "17" } }, { - "ID": "2", - "typeID": "Label", + "ID": "3", + "typeID": "Icon", "zOrder": "2", - "w": "347", - "measuredW": "343", - "measuredH": "23", - "x": "16", - "y": "41", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "0", "properties": { - "size": "15", - "text": "Make sure to learn its quirks. Core details about its" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "w": "306", - "measuredW": "300", - "measuredH": "23", - "x": "37", - "y": "64", + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "116", + "y": "0", "properties": { - "size": "15", - "text": "runtime e.g. concurrency, memory model etc." + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -9534,17 +8593,17 @@ } }, { - "ID": "14258", + "ID": "14311", "typeID": "__group__", - "zOrder": "204", - "measuredW": "144", - "measuredH": "44", - "w": "144", - "h": "44", - "x": "341", - "y": "1033", + "zOrder": "211", + "measuredW": "140", + "measuredH": "54", + "w": "140", + "h": "54", + "x": "1583", + "y": "1102", "properties": { - "controlName": "103-learn-a-language:php" + "controlName": "101-repo-hosting-services:gitlab" }, "children": { "controls": { @@ -9553,12 +8612,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", - "h": "40", + "w": "131", + "h": "49", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "4", + "x": "0", + "y": "5", "properties": { "color": "16770457" } @@ -9567,23 +8626,24 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "34", - "measuredW": "34", + "w": "52", + "measuredW": "51", "measuredH": "25", - "x": "59", - "y": "12", + "x": "40", + "y": "17", "properties": { + "color": "3355443", "size": "17", - "text": "PHP" + "text": "GitLab" } }, { - "ID": "2", + "ID": "3", "typeID": "Icon", "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "116", "y": "0", "properties": { "color": "16777215", @@ -9594,12 +8654,12 @@ } }, { - "ID": "3", + "ID": "4", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "116", "y": "0", "properties": { "color": "16777215", @@ -9610,12 +8670,12 @@ } }, { - "ID": "4", + "ID": "5", "typeID": "Icon", "zOrder": "4", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "116", "y": "0", "properties": { "color": "3700253", @@ -9630,17 +8690,17 @@ } }, { - "ID": "14259", + "ID": "14312", "typeID": "__group__", - "zOrder": "205", - "measuredW": "146", - "measuredH": "47", - "w": "146", - "h": "47", - "x": "1039", - "y": "919", + "zOrder": "212", + "measuredW": "178", + "measuredH": "40", + "w": "178", + "h": "40", + "x": "1061", + "y": "1758", "properties": { - "controlName": "105-learn-a-language:javascript" + "controlName": "100-more-about-databases:orms" }, "children": { "controls": { @@ -9649,12 +8709,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "171", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "7", + "x": "7", + "y": "0", "properties": { "color": "16770457" } @@ -9663,14 +8723,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "85", - "measuredW": "81", + "w": "49", + "measuredW": "49", "measuredH": "25", - "x": "27", - "y": "15", + "x": "71", + "y": "7", "properties": { "size": "17", - "text": "JavaScript" + "text": "ORMs" } }, { @@ -9679,8 +8739,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "0", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -9690,15 +8750,15 @@ } }, { - "ID": "4", + "ID": "3", "typeID": "Icon", "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "0", + "x": "0", + "y": "8", "properties": { - "color": "3700253", + "color": "10027263", "icon": { "ID": "check-circle", "size": "small" @@ -9710,17 +8770,17 @@ } }, { - "ID": "14260", + "ID": "14313", "typeID": "__group__", - "zOrder": "206", - "measuredW": "146", - "measuredH": "45", - "w": "146", - "h": "45", - "x": "1039", - "y": "967", + "zOrder": "213", + "measuredW": "204", + "measuredH": "50", + "w": "204", + "h": "50", + "x": "1214", + "y": "2674", "properties": { - "controlName": "106-learn-a-language:python" + "controlName": "113-ci-cd" }, "children": { "controls": { @@ -9729,28 +8789,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", - "h": "40", + "w": "194", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "5", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "56", - "measuredW": "53", + "w": "62", + "measuredW": "59", "measuredH": "25", - "x": "40", - "y": "13", + "x": "66", + "y": "12", "properties": { "size": "17", - "text": "Python" + "text": "CI / CD" } }, { @@ -9759,8 +8819,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "0", + "x": "180", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -9775,30 +8835,61 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "0", + "x": "180", + "y": "13", "properties": { - "color": "16777215", + "color": "10027263", "icon": { - "ID": "circle", + "ID": "check-circle", "size": "small" } } - }, + } + ] + } + } + }, + { + "ID": "14314", + "typeID": "__group__", + "zOrder": "214", + "measuredW": "324", + "measuredH": "50", + "w": "324", + "h": "50", + "x": "677", + "y": "2774", + "properties": { + "controlName": "114-design-and-development-principles" + }, + "children": { + "controls": { + "control": [ { - "ID": "4", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "122", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "324", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", "y": "0", "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "275", + "measuredH": "25", + "x": "24", + "y": "13", + "properties": { + "size": "17", + "text": "Design and Development Principles" } } ] @@ -9806,17 +8897,17 @@ } }, { - "ID": "14261", + "ID": "14319", "typeID": "__group__", - "zOrder": "207", - "measuredW": "146", - "measuredH": "47", - "w": "146", - "h": "47", - "x": "1039", - "y": "1011", + "zOrder": "215", + "measuredW": "268", + "measuredH": "40", + "w": "268", + "h": "40", + "x": "667", + "y": "2852", "properties": { - "controlName": "107-learn-a-language:ruby" + "controlName": "100-design-and-development-principles:gof-design-patterns" }, "children": { "controls": { @@ -9825,12 +8916,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "136", + "w": "260", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "7", + "x": "8", + "y": "0", "properties": { "color": "16770457" } @@ -9839,40 +8930,24 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "42", - "measuredW": "39", + "w": "168", + "measuredW": "164", "measuredH": "25", - "x": "47", - "y": "15", + "x": "54", + "y": "7", "properties": { "size": "17", - "text": "Ruby" + "text": "GOF Design Patterns" } }, { "ID": "2", "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "122", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", + "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "0", + "x": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -9882,19 +8957,19 @@ } }, { - "ID": "4", + "ID": "3", "typeID": "Icon", - "zOrder": "4", + "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "122", - "y": "0", + "x": "0", + "y": "8", "properties": { - "color": "3700253", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -9902,287 +8977,97 @@ } }, { - "ID": "14262", - "typeID": "Arrow", - "zOrder": "208", - "w": "154", - "h": "40", - "measuredW": "150", - "measuredH": "100", - "x": "864", - "y": "520", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.4299387442572742, - "y": 0.06087289433384378 - }, - "p2": { - "x": 154, - "y": 40 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14263", - "typeID": "Arrow", - "zOrder": "209", - "w": "152", - "h": "83", - "measuredW": "150", - "measuredH": "100", - "x": "872", - "y": "522", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.5124862467909179, - "y": -0.09515553629180144 - }, - "p2": { - "x": 152, - "y": 83 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14264", - "typeID": "Arrow", - "zOrder": "210", - "w": "124", - "h": "57", - "measuredW": "150", - "measuredH": "100", - "x": "508", - "y": "524", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 124, - "y": 0 - }, - "p1": { - "x": 0.4977437042068999, - "y": -0.11213547479256634 - }, - "p2": { - "x": 0, - "y": 57 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14265", - "typeID": "Arrow", - "zOrder": "211", - "w": "151", - "h": "29", - "measuredW": "150", - "measuredH": "100", - "x": "872", - "y": "474", - "properties": { - "color": "2848996", - "leftArrow": "false", - "p0": { - "x": 150, - "y": 28 - }, - "p1": { - "x": 0.4823054457996908, - "y": 0.02336368321594228 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14266", - "typeID": "Arrow", - "zOrder": "212", - "w": "153", - "h": "13", - "measuredW": "150", - "measuredH": "100", - "x": "874", - "y": "457", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 152, - "y": 0 - }, - "p1": { - "x": 0.4798692360633173, - "y": -0.004989676531314521 - }, - "p2": { - "x": 0, - "y": 12 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14267", - "typeID": "Arrow", - "zOrder": "213", - "h": "60", - "measuredW": "150", - "measuredH": "100", - "x": "872", - "y": "408", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 149, - "y": 0 - }, - "p1": { - "x": 0.4552212800557556, - "y": -0.05494250203275647 - }, - "p2": { - "x": 0, - "y": 59 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14268", - "typeID": "Arrow", - "zOrder": "214", - "w": "129", - "h": "36", - "measuredW": "150", - "measuredH": "100", - "x": "493", - "y": "476", - "properties": { - "color": "2848996", - "curvature": "0", - "direction": "bottom", - "leftArrow": "false", - "p0": { - "x": 129, - "y": 0 - }, - "p1": { - "x": 0.4772874058127019, - "y": 0.05888051668460705 - }, - "p2": { - "x": 0, - "y": 36 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14269", - "typeID": "Arrow", - "zOrder": "215", - "w": "131", - "h": "9", - "measuredW": "150", - "measuredH": "100", - "x": "493", - "y": "465", - "properties": { - "color": "2848996", - "curvature": "0", - "leftArrow": "false", - "p0": { - "x": 129, - "y": 7 - }, - "p1": { - "x": 0.4652789342214826, - "y": -0.001332223147377271 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14270", - "typeID": "Arrow", + "ID": "14320", + "typeID": "__group__", "zOrder": "216", - "w": "143", - "h": "53", - "measuredW": "150", - "measuredH": "100", - "x": "483", - "y": "418", + "measuredW": "268", + "measuredH": "40", + "w": "268", + "h": "40", + "x": "667", + "y": "2897", "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 141, - "y": 51 - }, - "p1": { - "x": 0.45522128005575574, - "y": -0.054942502032756434 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "controlName": "101-design-and-development-principles:domain-driven-design" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "260", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "175", + "measuredW": "172", + "measuredH": "25", + "x": "50", + "y": "7", + "properties": { + "size": "17", + "text": "Domain Driven Design" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] + } } }, { - "ID": "14271", + "ID": "14321", "typeID": "__group__", "zOrder": "217", - "measuredW": "278", - "measuredH": "60", - "w": "278", - "h": "60", - "x": "606", - "y": "434", + "measuredW": "268", + "measuredH": "40", + "w": "268", + "h": "40", + "x": "667", + "y": "2942", "properties": { - "controlName": "100-internet" + "controlName": "102-design-and-development-principles:test-driven-development" }, "children": { "controls": { @@ -10191,27 +9076,28 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "272", - "h": "50", + "w": "260", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "10", + "x": "8", + "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "62", + "w": "196", + "measuredW": "194", "measuredH": "25", - "x": "111", - "y": "23", + "x": "40", + "y": "7", "properties": { - "text": "Internet", - "size": "17" + "size": "17", + "text": "Test Driven Development" } }, { @@ -10221,7 +9107,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -10237,13 +9123,13 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -10251,17 +9137,17 @@ } }, { - "ID": "14272", + "ID": "14322", "typeID": "__group__", "zOrder": "218", - "measuredW": "306", - "measuredH": "53", - "w": "306", - "h": "53", - "x": "209", - "y": "386", + "measuredW": "254", + "measuredH": "37", + "w": "254", + "h": "37", + "x": "1459", + "y": "3009", "properties": { - "controlName": "100-internet:how-does-the-internet-work" + "controlName": "104-architectural-patterns:serverless" }, "children": { "controls": { @@ -10270,12 +9156,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "299", - "h": "44", + "w": "245", + "h": "37", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "9", + "x": "0", + "y": "0", "properties": { "color": "16770457" } @@ -10284,14 +9170,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "223", - "measuredW": "219", + "w": "87", + "measuredW": "82", "measuredH": "25", - "x": "45", - "y": "19", + "x": "79", + "y": "6", "properties": { "size": "17", - "text": "How does the internet work?" + "text": "Serverless" } }, { @@ -10300,8 +9186,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "230", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -10316,8 +9202,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "0", - "y": "0", + "x": "230", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -10331,17 +9217,17 @@ } }, { - "ID": "14273", + "ID": "14323", "typeID": "__group__", "zOrder": "219", - "measuredW": "307", - "measuredH": "47", - "w": "307", - "h": "47", - "x": "208", - "y": "438", + "measuredW": "328", + "measuredH": "138", + "w": "328", + "h": "138", + "x": "1059", + "y": "3777", "properties": { - "controlName": "101-internet:what-is-http" + "controlName": "123-scalability" }, "children": { "controls": { @@ -10350,34 +9236,75 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "299", - "h": "40", + "w": "318", + "h": "129", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "7", + "x": "10", + "y": "9", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "119", - "measuredW": "113", + "measuredW": "134", "measuredH": "25", - "x": "98", - "y": "15", + "x": "102", + "y": "25", "properties": { - "size": "17", - "text": "What is HTTP?" + "text": "Building for Scale", + "size": "17" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "Label", "zOrder": "2", + "w": "264", + "measuredW": "260", + "measuredH": "24", + "x": "37", + "y": "53", + "properties": { + "size": "16", + "text": "General topics that you should learn" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "w": "270", + "measuredW": "258", + "measuredH": "24", + "x": "34", + "y": "76", + "properties": { + "size": "16", + "text": "and care about for the sustainability" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "w": "108", + "measuredW": "105", + "measuredH": "24", + "x": "115", + "y": "100", + "properties": { + "size": "16", + "text": "of the product." + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "5", "measuredW": "24", "measuredH": "24", "x": "0", @@ -10391,9 +9318,9 @@ } }, { - "ID": "3", + "ID": "6", "typeID": "Icon", - "zOrder": "3", + "zOrder": "6", "measuredW": "24", "measuredH": "24", "x": "0", @@ -10411,17 +9338,17 @@ } }, { - "ID": "14274", + "ID": "14324", "typeID": "__group__", "zOrder": "220", - "measuredW": "307", + "measuredW": "210", "measuredH": "48", - "w": "307", + "w": "210", "h": "48", - "x": "208", - "y": "483", + "x": "813", + "y": "3703", "properties": { - "controlName": "102-internet:browsers-and-how-they-work" + "controlName": "100-scalability:mitigation-strategies" }, "children": { "controls": { @@ -10430,11 +9357,11 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "299", + "w": "199", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "8", + "x": "0", "y": "8", "properties": { "color": "16770457" @@ -10444,14 +9371,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "230", - "measuredW": "225", + "w": "159", + "measuredW": "159", "measuredH": "25", - "x": "42", - "y": "16", + "x": "20", + "y": "15", "properties": { "size": "17", - "text": "Browsers and how they work?" + "text": "Mitigation Strategies" } }, { @@ -10460,7 +9387,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "0", + "x": "186", "y": "0", "properties": { "color": "16777215", @@ -10476,14 +9403,62 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", + "x": "186", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "14325", + "typeID": "__group__", + "zOrder": "221", + "measuredW": "198", + "measuredH": "36", + "w": "198", + "h": "36", + "x": "814", + "y": "3848", + "properties": { + "controlName": "101-scalability:instrumentation-monitoring-telemetry" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "36", + "measuredW": "200", + "measuredH": "140", "x": "0", "y": "0", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "155", + "measuredW": "154", + "measuredH": "25", + "x": "22", + "y": "6", + "properties": { + "size": "17", + "text": "Understand the Diff." } } ] @@ -10491,17 +9466,129 @@ } }, { - "ID": "14275", + "ID": "14326", + "typeID": "Label", + "zOrder": "222", + "w": "84", + "measuredW": "83", + "measuredH": "25", + "x": "667", + "y": "3859", + "properties": { + "size": "17", + "text": "Monitoring" + } + }, + { + "ID": "14327", + "typeID": "Label", + "zOrder": "223", + "w": "78", + "measuredW": "73", + "measuredH": "25", + "x": "660", + "y": "3702", + "properties": { + "size": "17", + "text": "Throttling" + } + }, + { + "ID": "14328", + "typeID": "Label", + "zOrder": "224", + "w": "109", + "measuredW": "107", + "measuredH": "25", + "x": "629", + "y": "3730", + "properties": { + "size": "17", + "text": "Backpressure" + } + }, + { + "ID": "14329", + "typeID": "Label", + "zOrder": "225", + "w": "100", + "measuredW": "94", + "measuredH": "25", + "x": "638", + "y": "3758", + "properties": { + "size": "17", + "text": "Loadshifting" + } + }, + { + "ID": "14330", + "typeID": "Label", + "zOrder": "226", + "w": "70", + "measuredW": "66", + "measuredH": "25", + "x": "666", + "y": "3652", + "properties": { + "size": "17", + "text": "Graceful" + } + }, + { + "ID": "14331", + "typeID": "Label", + "zOrder": "227", + "w": "84", + "measuredW": "76", + "measuredH": "25", + "x": "665", + "y": "3884", + "properties": { + "size": "17", + "text": "Telemetry" + } + }, + { + "ID": "14332", + "typeID": "Label", + "zOrder": "228", + "w": "124", + "measuredW": "121", + "measuredH": "25", + "x": "627", + "y": "3834", + "properties": { + "size": "17", + "text": "Instrumentation" + } + }, + { + "ID": "14333", + "typeID": "Label", + "zOrder": "229", + "w": "118", + "measuredW": "116", + "measuredH": "25", + "x": "620", + "y": "3783", + "properties": { + "size": "17", + "text": "Circuit Breaker" + } + }, + { + "ID": "14334", "typeID": "__group__", - "zOrder": "221", - "measuredW": "290", + "zOrder": "230", + "measuredW": "342", "measuredH": "49", - "w": "290", + "w": "342", "h": "49", - "x": "1009", - "y": "381", + "x": "1436", + "y": "3812", "properties": { - "controlName": "103-internet:dns-and-how-it-works" + "controlName": "102-scalability:migration-strategies" }, "children": { "controls": { @@ -10510,7 +9597,7 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "280", + "w": "333", "h": "40", "measuredW": "200", "measuredH": "140", @@ -10524,14 +9611,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "179", - "measuredW": "175", + "measuredW": "155", "measuredH": "25", - "x": "51", - "y": "17", + "x": "93", + "y": "16", "properties": { - "size": "17", - "text": "DNS and how it works?" + "text": "Migration Strategies", + "size": "17" } }, { @@ -10540,7 +9626,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "266", + "x": "318", "y": "0", "properties": { "color": "16777215", @@ -10556,7 +9642,7 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "266", + "x": "318", "y": "0", "properties": { "color": "10027263", @@ -10571,17 +9657,17 @@ } }, { - "ID": "14276", + "ID": "14335", "typeID": "__group__", - "zOrder": "222", - "measuredW": "290", - "measuredH": "45", - "w": "290", - "h": "45", - "x": "1008", - "y": "431", + "zOrder": "231", + "measuredW": "341", + "measuredH": "42", + "w": "341", + "h": "42", + "x": "1437", + "y": "3865", "properties": { - "controlName": "104-internet:what-is-domain-name" + "controlName": "103-scalability:horizontal-vertical-scaling" }, "children": { "controls": { @@ -10590,12 +9676,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "280", + "w": "332", "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "5", + "y": "2", "properties": { "color": "16770457" } @@ -10604,14 +9690,14 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "179", - "measuredW": "180", + "w": "230", + "measuredW": "221", "measuredH": "25", - "x": "51", - "y": "13", + "x": "54", + "y": "9", "properties": { "size": "17", - "text": "What is Domain Name?" + "text": "Horizontal vs Vertical Scaling" } }, { @@ -10620,7 +9706,7 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "266", + "x": "317", "y": "0", "properties": { "color": "16777215", @@ -10636,7 +9722,7 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "266", + "x": "317", "y": "0", "properties": { "color": "10027263", @@ -10651,17 +9737,95 @@ } }, { - "ID": "14277", + "ID": "14336", + "typeID": "Label", + "zOrder": "232", + "w": "96", + "measuredW": "96", + "measuredH": "25", + "x": "640", + "y": "3672", + "properties": { + "size": "17", + "text": "Degradation" + } + }, + { + "ID": "14339", + "typeID": "Icon", + "zOrder": "233", + "measuredW": "24", + "measuredH": "24", + "x": "1705", + "y": "2455", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14340", + "typeID": "Icon", + "zOrder": "234", + "measuredW": "24", + "measuredH": "24", + "x": "1705", + "y": "2455", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "14341", + "typeID": "Icon", + "zOrder": "264", + "measuredW": "24", + "measuredH": "24", + "x": "1709", + "y": "2809", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "14342", + "typeID": "Icon", + "zOrder": "265", + "measuredW": "24", + "measuredH": "24", + "x": "1709", + "y": "2809", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "14343", "typeID": "__group__", - "zOrder": "223", - "measuredW": "289", - "measuredH": "46", - "w": "289", - "h": "46", - "x": "1009", - "y": "476", + "zOrder": "235", + "measuredW": "154", + "measuredH": "40", + "w": "154", + "h": "40", + "x": "957", + "y": "2377", "properties": { - "controlName": "105-internet:what-is-hosting" + "controlName": "103-apis:grpc" }, "children": { "controls": { @@ -10670,12 +9834,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "280", + "w": "145", "h": "40", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "6", + "y": "0", "properties": { "color": "16770457" } @@ -10684,14 +9848,15 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "133", - "measuredW": "126", + "w": "90", + "measuredW": "45", "measuredH": "25", - "x": "74", - "y": "14", + "x": "28", + "y": "7", "properties": { + "align": "center", "size": "17", - "text": "What is hosting?" + "text": "gRPC" } }, { @@ -10700,8 +9865,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "265", - "y": "0", + "x": "130", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -10716,8 +9881,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "265", - "y": "0", + "x": "130", + "y": "8", "properties": { "color": "10027263", "icon": { @@ -10731,17 +9896,17 @@ } }, { - "ID": "14278", + "ID": "14358", "typeID": "__group__", - "zOrder": "224", - "measuredW": "277", - "measuredH": "55", - "w": "277", - "h": "55", - "x": "607", - "y": "495", + "zOrder": "236", + "measuredW": "324", + "measuredH": "50", + "w": "324", + "h": "50", + "x": "676", + "y": "2679", "properties": { - "controlName": "101-basic-frontend" + "controlName": "ext_link:roadmap.sh/software-design-architecture" }, "children": { "controls": { @@ -10750,59 +9915,30 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "272", + "w": "324", "h": "50", "measuredW": "200", "measuredH": "140", - "x": "5", - "y": "5", + "x": "0", + "y": "0", "properties": { - "color": "16776960" + "color": "4273622", + "borderColor": "4273622", + "textColor": "16777215" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "207", + "measuredW": "240", "measuredH": "25", - "x": "37", - "y": "18", - "properties": { - "text": "Basic Frontend Knowledge", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", + "x": "42", + "y": "12", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Software Design & Architecture", + "size": "17", + "color": "16777215" } } ] @@ -10810,17 +9946,17 @@ } }, { - "ID": "14279", + "ID": "14359", "typeID": "__group__", - "zOrder": "225", - "measuredW": "148", - "measuredH": "52", - "w": "148", - "h": "52", - "x": "367", - "y": "547", + "zOrder": "237", + "measuredW": "221", + "measuredH": "50", + "w": "221", + "h": "50", + "x": "1118", + "y": "4054", "properties": { - "controlName": "100-basic-frontend:html" + "controlName": "124-bonus-content" }, "children": { "controls": { @@ -10829,28 +9965,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "142", - "h": "43", + "w": "210", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "6", - "y": "9", + "x": "11", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "49", - "measuredW": "48", + "measuredW": "115", "measuredH": "25", - "x": "52", - "y": "19", + "x": "58", + "y": "12", "properties": { "size": "17", - "text": "HTML" + "text": "Bonus Content" } }, { @@ -10860,7 +9995,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -10876,9 +10011,9 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "13", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -10890,17 +10025,317 @@ } }, { - "ID": "14280", - "typeID": "__group__", - "zOrder": "226", + "ID": "14360", + "typeID": "Arrow", + "zOrder": "68", + "w": "125", + "h": "39", + "measuredW": "150", + "measuredH": "100", + "x": "984", + "y": "871", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 125.25416379776266, + "y": 38.781956555409124 + }, + "p1": { + "x": 0.5135953851047824, + "y": 0.07342097486825926 + }, + "p2": { + "x": -0.07798982877545768, + "y": 0.01943481524267554 + } + } + }, + { + "ID": "14366", + "typeID": "Arrow", + "zOrder": "58", + "w": "1", + "h": "83", + "measuredW": "150", + "measuredH": "100", + "x": "1424", + "y": "1044", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 83.20762430962418 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.24980034602958767, + "y": 0.43870807682526447 + } + } + }, + { + "ID": "14367", + "typeID": "Arrow", + "zOrder": "67", + "w": "1", + "h": "167", + "measuredW": "150", + "measuredH": "100", + "x": "763", + "y": "1051", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 167.04191001796403 + }, + "p1": { + "x": 0.49999999999999994, + "y": 0 + }, + "p2": { + "x": -0.24980034602958767, + "y": 0.03268182252122642 + } + } + }, + { + "ID": "14368", + "typeID": "Arrow", + "zOrder": "66", + "w": "1", + "h": "162", + "measuredW": "150", + "measuredH": "100", + "x": "927", + "y": "1056", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 162.04191001796403 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.24980034602958767, + "y": 0.32416628950863924 + } + } + }, + { + "ID": "14372", + "typeID": "Arrow", + "zOrder": "64", + "w": "154", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "1453", + "y": "1189", + "properties": { + "p0": { + "x": 0.458717507699248, + "y": 4.902762431183191 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 154.57320260870983, + "y": -0.3887220358042214 + }, + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted" + } + }, + { + "ID": "14373", + "typeID": "Arrow", + "zOrder": "63", + "w": "146", + "h": "56", + "measuredW": "150", + "measuredH": "100", + "x": "1446", + "y": "1129", + "properties": { + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.4785091927819849, + "y": 55.642664613955276 + }, + "p1": { + "x": 0.5049653579676676, + "y": -0.08879907621247125 + }, + "p2": { + "x": 145.69874920774737, + "y": 0.08207771058664548 + } + } + }, + { + "ID": "14374", + "typeID": "Arrow", + "zOrder": "62", + "w": "152", + "h": "101", + "measuredW": "150", + "measuredH": "100", + "x": "1440", + "y": "1072", + "properties": { + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.4314292181429664, + "y": 100.73682456323331 + }, + "p1": { + "x": 0.49914028657114357, + "y": -0.13680773075641442 + }, + "p2": { + "x": 151.69874920774737, + "y": 0.19861969047110506 + } + } + }, + { + "ID": "14375", + "typeID": "Arrow", + "zOrder": "61", + "w": "165", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "1351", + "y": "922", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 165.64034870052888, + "y": 0 + }, + "p1": { + "x": 0.4652789342214824, + "y": -0.0013322231473772653 + }, + "p2": { + "x": 0.2814591071698942, + "y": 4.68279684831532 + } + } + }, + { + "ID": "14376", + "typeID": "Arrow", + "zOrder": "60", + "w": "161", + "h": "48", + "measuredW": "150", + "measuredH": "100", + "x": "1326", + "y": "868", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 161.53718413209776, + "y": 0.4764677114528695 + }, + "p1": { + "x": 0.46937049176096124, + "y": 0.08997514266115965 + }, + "p2": { + "x": 0.14690788897928542, + "y": 48.45408568084645 + } + } + }, + { + "ID": "14377", + "typeID": "Arrow", + "zOrder": "59", + "w": "143", + "h": "34", "measuredW": "150", + "measuredH": "100", + "x": "1351", + "y": "937", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 143.1515397158321, + "y": 33.33754370096199 + }, + "p1": { + "x": 0.4799532170311047, + "y": -0.07212649611970279 + }, + "p2": { + "x": 0.2814591071698942, + "y": -0.31720315168468005 + } + } + }, + { + "ID": "14378", + "typeID": "__group__", + "zOrder": "238", + "measuredW": "299", "measuredH": "50", - "w": "150", + "w": "299", "h": "50", - "x": "1009", - "y": "528", + "x": "1418", + "y": "1406", "properties": { - "controlName": "101-basic-frontend:css" + "controlName": "102-os-general-knowledge" }, "children": { "controls": { @@ -10909,60 +10344,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "142", - "h": "43", + "w": "299", + "h": "50", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "7", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "38", - "measuredW": "33", + "measuredW": "213", "measuredH": "25", - "x": "52", - "y": "17", - "properties": { - "size": "17", - "text": "CSS" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "126", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "126", - "y": "0", + "x": "47", + "y": "12", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "OS and General Knowledge", + "size": "17" } } ] @@ -10970,327 +10372,944 @@ } }, { - "ID": "14281", - "typeID": "__group__", - "zOrder": "227", + "ID": "14380", + "typeID": "TextArea", + "zOrder": "57", + "w": "307", + "h": "401", + "measuredW": "200", + "measuredH": "140", + "x": "1415", + "y": "1592" + }, + { + "ID": "14383", + "typeID": "Label", + "zOrder": "239", + "measuredW": "235", + "measuredH": "25", + "x": "1447", + "y": "1954", + "properties": { + "size": "17", + "text": "Operating Systems Knowledge" + } + }, + { + "ID": "14391", + "typeID": "Arrow", + "zOrder": "56", + "w": "182", + "h": "244", "measuredW": "150", - "measuredH": "48", - "w": "150", - "h": "48", - "x": "1009", - "y": "581", + "measuredH": "100", + "x": "1269", + "y": "1185", "properties": { - "controlName": "102-basic-frontend:javascript" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "142", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "5", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "84", - "measuredW": "81", - "measuredH": "25", - "x": "34", - "y": "14", - "properties": { - "size": "17", - "text": "JavaScript" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "126", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "126", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 2.6820507296401956, + "y": -0.28812721471331315 + }, + "p1": { + "x": 0.5486000169108877, + "y": -0.2734756055254588 + }, + "p2": { + "x": 181.4160384735476, + "y": 243.50229284977354 } } }, { - "ID": "14282", + "ID": "14401", "typeID": "Arrow", - "zOrder": "228", - "w": "135", - "h": "195", + "zOrder": "55", + "w": "372", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1094", + "y": "1447", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0.5 + }, + "p1": { + "x": 0.4734542725983134, + "y": -0.00011162392477927833 + }, + "p2": { + "x": 372.1665431406352, + "y": 0.44787919754480754 + } + } + }, + { + "ID": "14403", + "typeID": "Arrow", + "zOrder": "54", + "w": "108", + "h": "69", "measuredW": "150", "measuredH": "100", - "x": "887", - "y": "694", + "x": "866", + "y": "1459", "properties": { "color": "2848996", "curvature": "-1", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": 134.5, - "y": 195 + "x": 108.53128935943289, + "y": -0.29133900542706215 }, "p1": { - "x": 0.5227813114793675, - "y": 0.0017380179353795955 + "x": 0.5277931876178863, + "y": -0.08110507045378823 }, "p2": { - "x": -0.5, + "x": 0.33217034204835727, + "y": 68.41805714189809 + } + } + }, + { + "ID": "14404", + "typeID": "Arrow", + "zOrder": "53", + "w": "112", + "h": "105", + "measuredW": "150", + "measuredH": "100", + "x": "870", + "y": "1462", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 112.74894396834816, + "y": -0.32317972942405504 + }, + "p1": { + "x": 0.5277931876178864, + "y": -0.08110507045378819 + }, + "p2": { + "x": 0.4409976465059344, + "y": 105.13672108498872 + } + } + }, + { + "ID": "14406", + "typeID": "Arrow", + "zOrder": "52", + "w": "1", + "h": "166", + "measuredW": "150", + "measuredH": "100", + "x": "1560", + "y": "1351", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.24980034602958767, + "y": 166.66755247481046 + }, + "p1": { + "x": 0.5, "y": 0 }, - "rightArrow": "false", - "stroke": "dotted" + "p2": { + "x": -0.24980034602958767, + "y": 0.43870807682526447 + } } }, { - "ID": "14283", + "ID": "14407", "typeID": "Arrow", - "zOrder": "229", - "w": "136", - "h": "131", + "zOrder": "51", + "w": "163", + "h": "178", "measuredW": "150", "measuredH": "100", - "x": "892", - "y": "692", + "x": "1153", + "y": "1460", "properties": { "color": "2848996", - "curvature": "-1", + "direction": "bottom", "leftArrow": "false", + "rightArrow": "false", "p0": { - "x": 135.5, - "y": 131 + "x": -0.16305972330678742, + "y": 0.21190866916163031 }, "p1": { - "x": 0.5227813114793675, - "y": 0.0017380179353796794 + "x": 0.45708880562052184, + "y": 0.19653198805241293 }, "p2": { - "x": -0.5, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "x": 163.28809993951177, + "y": 178.12777272691983 + } } }, { - "ID": "14284", + "ID": "14408", "typeID": "Arrow", - "zOrder": "230", - "w": "138", - "h": "76", + "zOrder": "50", + "w": "108", + "h": "52", "measuredW": "150", "measuredH": "100", - "x": "885", - "y": "686", + "x": "866", + "y": "1385", "properties": { "color": "2848996", "curvature": "-1", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": 137.5, - "y": 76 + "x": 108.53128935943289, + "y": 52.02385644383003 }, "p1": { - "x": 0.524315747719159, - "y": -0.026418088060293544 + "x": 0.5450108459869839, + "y": 0.08947939262472887 }, "p2": { - "x": -0.5, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "x": 0.33217034204835727, + "y": -0.02128941263345041 + } } }, { - "ID": "14285", + "ID": "14409", "typeID": "Arrow", - "zOrder": "231", - "w": "141", - "h": "30", + "zOrder": "49", + "w": "118", + "h": "21", "measuredW": "150", "measuredH": "100", - "x": "884", - "y": "680", + "x": "861", + "y": "1427", "properties": { "color": "2848996", "curvature": "-1", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": 140.5, - "y": 30 + "x": 117.64011666389058, + "y": 20.98072925571705 }, "p1": { - "x": 0.5227813114793672, - "y": 0.0017380179353795478 + "x": 0.572103398504133, + "y": 0.053273848576302456 }, "p2": { - "x": -0.5, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "x": -0.14626606389515473, + "y": 0.43659273342882443 + } } }, { - "ID": "14286", + "ID": "14410", "typeID": "Arrow", - "zOrder": "232", - "w": "144", - "h": "5", + "zOrder": "48", + "w": "110", + "h": "33", "measuredW": "150", "measuredH": "100", - "x": "881", - "y": "669", + "x": "863", + "y": "1452", "properties": { "color": "2848996", "curvature": "-1", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": 143.5, - "y": 0 + "x": 110.27050756240465, + "y": 0.4591656616605633 }, "p1": { - "x": 0.5227813114793672, - "y": 0.001738017935379522 + "x": 0.6011290949912016, + "y": -0.04344446531392316 }, "p2": { - "x": -0.5, - "y": 5 - }, - "rightArrow": "false", - "stroke": "dotted" + "x": -0.14626606389515473, + "y": 33.436592733428824 + } } }, { - "ID": "14287", + "ID": "14442", "typeID": "__group__", - "zOrder": "233", - "measuredW": "276", - "measuredH": "51", - "w": "276", - "h": "51", - "x": "1009", - "y": "638", + "zOrder": "242", + "measuredW": "174", + "measuredH": "154", + "w": "174", + "h": "154", + "x": "678", + "y": "1631", "properties": { - "controlName": "105-os-general-knowledge:memory-management" + "controlName": "100-nosql-databases:document-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "174", + "h": "154", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "15", + "properties": { + "color": "16770457" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "78", + "measuredH": "25", + "x": "51", + "y": "24", + "properties": { + "size": "17", + "text": "MongoDB" + } + }, + { + "ID": "3", + "typeID": "TextArea", + "zOrder": "3", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "63", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "74", + "measuredH": "25", + "x": "53", + "y": "72", + "properties": { + "size": "17", + "text": "CouchDB" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "117", + "measuredH": "25", + "x": "31", + "y": "114", + "properties": { + "size": "17", + "text": "Document DBs" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "12", + "y": "22", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "11", + "y": "71", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "14443", + "typeID": "__group__", + "zOrder": "245", + "measuredW": "168", + "measuredH": "154", + "w": "168", + "h": "154", + "x": "849", + "y": "1780", + "properties": { + "controlName": "101-nosql-databases:column-databases" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "168", + "h": "154", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "15", + "y": "14", + "properties": { + "color": "16770457" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "83", + "measuredH": "25", + "x": "42", + "y": "23", + "properties": { + "size": "17", + "text": "Cassandra" + } + }, + { + "ID": "3", + "typeID": "TextArea", + "zOrder": "3", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "15", + "y": "62", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "53", + "measuredH": "25", + "x": "57", + "y": "71", + "properties": { + "size": "17", + "text": "HBase" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "96", + "measuredH": "25", + "x": "36", + "y": "113", + "properties": { + "size": "17", + "text": "Column DBs" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "137", + "y": "23", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "137", + "y": "71", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "14444", + "typeID": "__group__", + "zOrder": "243", + "measuredW": "168", + "measuredH": "154", + "w": "168", + "h": "154", + "x": "849", + "y": "1631", + "properties": { + "controlName": "102-nosql-databases:timeseries-databases" }, "children": { "controls": { "control": [ { - "ID": "0", + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "168", + "h": "154", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "17", + "y": "14", + "properties": { + "color": "16770457" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "65", + "measuredH": "25", + "x": "53", + "y": "23", + "properties": { + "size": "17", + "text": "InfluxDB" + } + }, + { + "ID": "3", "typeID": "TextArea", - "zOrder": "0", - "w": "267", + "zOrder": "3", + "w": "137", "h": "43", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "8", + "x": "17", + "y": "62", "properties": { "color": "16770457" } }, { - "ID": "1", + "ID": "4", "typeID": "Label", - "zOrder": "1", - "w": "170", - "measuredW": "169", + "zOrder": "4", + "measuredW": "81", "measuredH": "25", - "x": "50", - "y": "18", + "x": "45", + "y": "71", "properties": { "size": "17", - "text": "Memory Management" + "text": "TimeScale" } }, { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "252", - "y": "0", + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "91", + "measuredH": "25", + "x": "38", + "y": "113", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "Time Series" } }, { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", + "ID": "6", + "typeID": "__group__", + "zOrder": "6", "measuredW": "24", "measuredH": "24", - "x": "252", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14288", + "w": "24", + "h": "24", + "x": "137", + "y": "21", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "141", + "y": "70", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "14445", "typeID": "__group__", - "zOrder": "234", - "measuredW": "276", - "measuredH": "47", - "w": "276", - "h": "47", - "x": "1009", - "y": "691", + "zOrder": "244", + "measuredW": "174", + "measuredH": "154", + "w": "174", + "h": "154", + "x": "678", + "y": "1780", "properties": { - "controlName": "106-os-general-knowledge:interprocess-communication" + "controlName": "103-nosql-databases:realtime-databases" }, "children": { "controls": { @@ -11299,78 +11318,210 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", - "h": "43", + "w": "174", + "h": "154", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "4", - "properties": { - "color": "16770457" - } + "y": "0" }, { "ID": "1", - "typeID": "Label", + "typeID": "TextArea", "zOrder": "1", - "w": "224", - "measuredW": "222", - "measuredH": "25", - "x": "23", - "y": "13", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "14", "properties": { - "size": "17", - "text": "Interprocess Communication" + "color": "16770457" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "Label", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "252", - "y": "0", + "measuredW": "68", + "measuredH": "25", + "x": "56", + "y": "23", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "size": "17", + "text": "Firebase" } }, { "ID": "3", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "252", - "y": "0", + "w": "137", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "21", + "y": "62", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "color": "16770457" } - } - ] - } - } - }, - { - "ID": "14289", + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "83", + "measuredH": "25", + "x": "48", + "y": "71", + "properties": { + "size": "17", + "text": "RethinkDB" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "69", + "measuredH": "25", + "x": "55", + "y": "113", + "properties": { + "size": "17", + "text": "Realtime" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "9", + "y": "23", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "10", + "y": "71", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "14446", "typeID": "__group__", - "zOrder": "235", - "measuredW": "276", - "measuredH": "47", - "w": "276", - "h": "47", - "x": "1009", - "y": "741", + "zOrder": "246", + "measuredW": "174", + "measuredH": "154", + "w": "174", + "h": "154", + "x": "678", + "y": "1930", "properties": { - "controlName": "107-os-general-knowledge:io-management" + "controlName": "104-nosql-databases:key-value-databases" }, "children": { "controls": { @@ -11379,37 +11530,248 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", - "h": "43", + "w": "174", + "h": "154", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "4", + "y": "0" + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "143", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "18", + "y": "14", "properties": { "color": "16770457" } }, { - "ID": "1", + "ID": "2", "typeID": "Label", - "zOrder": "1", - "w": "135", - "measuredW": "133", + "zOrder": "2", + "measuredW": "45", "measuredH": "25", - "x": "66", - "y": "14", + "x": "64", + "y": "23", "properties": { "size": "17", - "text": "I/O Management" + "text": "Redis" } }, { - "ID": "2", + "ID": "3", + "typeID": "TextArea", + "zOrder": "3", + "w": "143", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "18", + "y": "61", + "properties": { + "color": "16770457" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "88", + "measuredH": "25", + "x": "43", + "y": "70", + "properties": { + "size": "17", + "text": "DynamoDB" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "76", + "measuredH": "25", + "x": "52", + "y": "114", + "properties": { + "size": "17", + "text": "Key-Value" + } + }, + { + "ID": "6", + "typeID": "__group__", + "zOrder": "6", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "11", + "y": "21", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "7", + "typeID": "__group__", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "9", + "y": "70", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "14447", + "typeID": "Arrow", + "zOrder": "47", + "w": "167", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "993", + "y": "1655", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 166.3460572544161, + "y": -0.11252414244177089 + }, + "p1": { + "x": 0.4652789342214823, + "y": -0.0013322231473772638 + }, + "p2": { + "x": -0.450419321956133, + "y": 1.4791597765599818 + } + } + }, + { + "ID": "14448", + "typeID": "__group__", + "zOrder": "241", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1707", + "y": "1625", + "children": { + "controls": { + "control": [ + { + "ID": "0", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", - "x": "252", + "x": "0", "y": "0", "properties": { "color": "16777215", @@ -11420,12 +11782,12 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "252", + "x": "0", "y": "0", "properties": { "color": "10027263", @@ -11440,69 +11802,25 @@ } }, { - "ID": "14290", + "ID": "14449", "typeID": "__group__", - "zOrder": "236", - "measuredW": "276", - "measuredH": "69", - "w": "276", - "h": "69", - "x": "1009", - "y": "791", - "properties": { - "controlName": "108-os-general-knowledge:posix-basics" - }, + "zOrder": "240", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1708", + "y": "1600", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "268", - "h": "65", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "4", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "105", - "measuredH": "25", - "x": "81", - "y": "15", - "properties": { - "text": "POSIX Basics", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "w": "180", - "measuredW": "172", - "measuredH": "23", - "x": "44", - "y": "36", - "properties": { - "size": "15", - "text": "stdin, stdout, stderr, pipes" - } - }, - { - "ID": "3", "typeID": "Icon", - "zOrder": "3", + "zOrder": "0", "measuredW": "24", "measuredH": "24", - "x": "252", + "x": "0", "y": "0", "properties": { "color": "16777215", @@ -11513,15 +11831,15 @@ } }, { - "ID": "4", + "ID": "1", "typeID": "Icon", - "zOrder": "4", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "252", + "x": "0", "y": "0", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -11533,56 +11851,25 @@ } }, { - "ID": "14291", + "ID": "14464", "typeID": "__group__", - "zOrder": "237", - "measuredW": "276", - "measuredH": "44", - "w": "276", - "h": "44", - "x": "1009", - "y": "866", - "properties": { - "controlName": "109-os-general-knowledge:basic-networking-concepts" - }, + "zOrder": "247", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1005", + "y": "1744", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "268", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "1", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "218", - "measuredW": "213", - "measuredH": "25", - "x": "25", - "y": "10", - "properties": { - "size": "17", - "text": "Basic Networking Concepts" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", - "x": "252", + "x": "0", "y": "0", "properties": { "color": "16777215", @@ -11593,15 +11880,15 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", - "x": "252", + "x": "0", "y": "0", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -11613,202 +11900,22 @@ } }, { - "ID": "14292", - "typeID": "Arrow", - "zOrder": "238", - "w": "128", - "h": "151", - "measuredW": "150", - "measuredH": "100", - "x": "506", - "y": "698", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 128, - "y": 0 - }, - "p1": { - "x": 0.4075757037878519, - "y": -0.014129007064503547 - }, - "p2": { - "x": 0, - "y": 151 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14293", - "typeID": "Arrow", - "zOrder": "239", - "w": "125", - "h": "107", - "measuredW": "150", - "measuredH": "100", - "x": "507", - "y": "691", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 125, - "y": 0 - }, - "p1": { - "x": 0.4291571249168944, - "y": -0.03135849892886164 - }, - "p2": { - "x": 0, - "y": 107 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14294", - "typeID": "Arrow", - "zOrder": "240", - "w": "119", - "h": "55", - "measuredW": "150", - "measuredH": "100", - "x": "509", - "y": "689", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 119, - "y": 0 - }, - "p1": { - "x": 0.513033864773653, - "y": -0.03543581985336902 - }, - "p2": { - "x": 0, - "y": 55 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14295", - "typeID": "Arrow", - "zOrder": "241", - "w": "131", - "h": "11", - "measuredW": "150", - "measuredH": "100", - "x": "502", - "y": "683", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 131, - "y": 0 - }, - "p1": { - "x": 0.4401290896950813, - "y": -0.005675495214778532 - }, - "p2": { - "x": 0, - "y": 11 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14296", - "typeID": "Arrow", - "zOrder": "242", - "w": "138", - "h": "32", - "measuredW": "150", - "measuredH": "100", - "x": "497", - "y": "649", - "properties": { - "color": "2848996", - "curvature": "-1", - "leftArrow": "false", - "p0": { - "x": 138, - "y": 32 - }, - "p1": { - "x": 0.4566473988439307, - "y": -0.03179190751445087 - }, - "p2": { - "x": 0, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" - } - }, - { - "ID": "14297", + "ID": "14465", "typeID": "__group__", - "zOrder": "243", - "measuredW": "276", - "measuredH": "60", - "w": "276", - "h": "60", - "x": "621", - "y": "653", - "properties": { - "controlName": "102-os-general-knowledge" - }, + "zOrder": "248", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1005", + "y": "1893", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "272", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "4", - "y": "10", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "213", - "measuredH": "25", - "x": "33", - "y": "23", - "properties": { - "text": "OS and General Knowledge", - "size": "17" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", @@ -11822,15 +11929,15 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -11842,53 +11949,22 @@ } }, { - "ID": "14298", + "ID": "14466", "typeID": "__group__", - "zOrder": "244", - "measuredW": "275", - "measuredH": "52", - "w": "275", - "h": "52", - "x": "242", - "y": "614", - "properties": { - "controlName": "100-os-general-knowledge:terminal-usage" - }, + "zOrder": "249", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "669", + "y": "1893", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "269", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "6", - "y": "9", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "123", - "measuredW": "121", - "measuredH": "25", - "x": "79", - "y": "19", - "properties": { - "size": "17", - "text": "Terminal Usage" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", @@ -11902,15 +11978,15 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "10027263", + "color": "10066329", "icon": { "ID": "check-circle", "size": "small" @@ -11922,78 +11998,22 @@ } }, { - "ID": "14299", + "ID": "14467", "typeID": "__group__", - "zOrder": "245", - "measuredW": "275", - "measuredH": "106", - "w": "275", - "h": "106", - "x": "242", - "y": "817", - "properties": { - "controlName": "104-os-general-knowledge:basic-terminal-commands" - }, + "zOrder": "250", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "694", + "y": "2068", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "269", - "h": "101", - "measuredW": "200", - "measuredH": "140", - "x": "6", - "y": "5", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "217", - "measuredH": "26", - "x": "32", - "y": "17", - "properties": { - "text": "Basic Terminal Commands", - "size": "18" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "223", - "measuredH": "25", - "x": "29", - "y": "43", - "properties": { - "text": "grep, awk, sed, lsof, curl, wget", - "size": "17" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "204", - "measuredH": "25", - "x": "39", - "y": "69", - "properties": { - "text": "tail, head, less, find, ssh, kill", - "size": "17" - } - }, - { - "ID": "4", "typeID": "Icon", - "zOrder": "4", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", @@ -12007,19 +12027,19 @@ } }, { - "ID": "5", + "ID": "1", "typeID": "Icon", - "zOrder": "5", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10066329" } } ] @@ -12027,53 +12047,22 @@ } }, { - "ID": "14300", + "ID": "14469", "typeID": "__group__", - "zOrder": "246", - "measuredW": "274", - "measuredH": "50", - "w": "274", - "h": "50", - "x": "242", - "y": "715", - "properties": { - "controlName": "102-os-general-knowledge:process-management" - }, + "zOrder": "251", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "670", + "y": "2068", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "7", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "172", - "measuredW": "170", - "measuredH": "25", - "x": "55", - "y": "16", - "properties": { - "size": "17", - "text": "Process Management" - } - }, - { - "ID": "2", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", @@ -12087,19 +12076,19 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -12107,53 +12096,71 @@ } }, { - "ID": "14301", + "ID": "14470", "typeID": "__group__", - "zOrder": "247", - "measuredW": "275", - "measuredH": "49", - "w": "275", - "h": "49", - "x": "242", - "y": "766", - "properties": { - "controlName": "103-os-general-knowledge:threads-and-concurrency" - }, + "zOrder": "252", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "693", + "y": "1618", "children": { "controls": { "control": [ { "ID": "0", - "typeID": "TextArea", + "typeID": "Icon", "zOrder": "0", - "w": "268", - "h": "43", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "6", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", "properties": { - "color": "16770457" + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } } }, { "ID": "1", - "typeID": "Label", + "typeID": "Icon", "zOrder": "1", - "w": "202", - "measuredW": "200", - "measuredH": "25", - "x": "40", - "y": "16", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", "properties": { - "size": "17", - "text": "Threads and Concurrency" + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10066329" } - }, + } + ] + } + } + }, + { + "ID": "14471", + "typeID": "__group__", + "zOrder": "253", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "669", + "y": "1618", + "children": { + "controls": { + "control": [ { - "ID": "2", + "ID": "0", "typeID": "Icon", - "zOrder": "2", + "zOrder": "0", "measuredW": "24", "measuredH": "24", "x": "0", @@ -12167,19 +12174,19 @@ } }, { - "ID": "3", + "ID": "1", "typeID": "Icon", - "zOrder": "3", + "zOrder": "1", "measuredW": "24", "measuredH": "24", "x": "0", "y": "0", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -12187,17 +12194,47 @@ } }, { - "ID": "14302", + "ID": "14472", + "typeID": "Arrow", + "zOrder": "46", + "w": "1", + "h": "90", + "measuredW": "150", + "measuredH": "100", + "x": "1149", + "y": "1960", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.07895678672230133, + "y": 90.41565770544025 + }, + "p1": { + "x": 0.4652789342214822, + "y": -0.0013322231473772612 + }, + "p2": { + "x": -0.07895678672230133, + "y": 0.128788397934386 + } + } + }, + { + "ID": "14477", "typeID": "__group__", - "zOrder": "248", - "measuredW": "275", - "measuredH": "48", - "w": "275", - "h": "48", - "x": "242", - "y": "667", + "zOrder": "254", + "measuredW": "226", + "measuredH": "50", + "w": "226", + "h": "50", + "x": "1195", + "y": "2143", "properties": { - "controlName": "101-os-general-knowledge:how-oss-work-in-general" + "controlName": "109-scaling-databases" }, "children": { "controls": { @@ -12206,60 +12243,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "268", - "h": "43", + "w": "226", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "7", - "y": "5", + "x": "0", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "197", - "measuredW": "195", + "measuredW": "144", "measuredH": "25", - "x": "42", - "y": "14", + "x": "41", + "y": "12", "properties": { "size": "17", - "text": "How OSs work in General" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "text": "Scaling Databases" } } ] @@ -12267,107 +12271,337 @@ } }, { - "ID": "14303", + "ID": "14479", "typeID": "Arrow", - "zOrder": "249", - "w": "58", - "h": "1", + "zOrder": "45", + "w": "173", + "h": "3", "measuredW": "150", "measuredH": "100", - "x": "1144", - "y": "1140", + "x": "1378", + "y": "2182", "properties": { "color": "2848996", - "curvature": "-1", + "curvature": "0", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": 58, - "y": 1 + "x": 172.5, + "y": -0.5 }, "p1": { - "x": 0.4872751951136749, - "y": -0.011876484560570062 + "x": 0.46527893422148214, + "y": -0.001332223147377259 }, "p2": { "x": 0, - "y": 1 + "y": 2 + } + } + }, + { + "ID": "14480", + "typeID": "Arrow", + "zOrder": "44", + "w": "159", + "h": "48", + "measuredW": "150", + "measuredH": "100", + "x": "1373", + "y": "2123", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 158.5, + "y": -0.5 + }, + "p1": { + "x": 0.4189469596436937, + "y": 0.0748615633485625 }, + "p2": { + "x": -0.450419321956133, + "y": 47.47915977655998 + } + } + }, + { + "ID": "14481", + "typeID": "Arrow", + "zOrder": "43", + "w": "171", + "h": "86", + "measuredW": "150", + "measuredH": "100", + "x": "1365", + "y": "2078", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted" + "stroke": "dotted", + "p0": { + "x": 170.5, + "y": -0.5 + }, + "p1": { + "x": 0.4189469596436937, + "y": 0.07486156334856249 + }, + "p2": { + "x": -0.5, + "y": 85.5 + } } }, { - "ID": "14304", + "ID": "14482", "typeID": "Arrow", - "zOrder": "250", - "w": "85", - "h": "3", + "zOrder": "42", + "w": "178", + "h": "120", + "measuredW": "150", + "measuredH": "100", + "x": "1355", + "y": "2037", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 177.5, + "y": -0.5 + }, + "p1": { + "x": 0.4189469596436937, + "y": 0.07486156334856242 + }, + "p2": { + "x": -0.5, + "y": 119.5 + } + } + }, + { + "ID": "14483", + "typeID": "Arrow", + "zOrder": "41", + "w": "103", + "h": "5", "measuredW": "150", "measuredH": "100", - "x": "807", - "y": "1136", + "x": "853", + "y": "2166", "properties": { "color": "2848996", "curvature": "-1", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": 83, - "y": 1 + "x": 0.04283790938666243, + "y": 4.965888182811341 }, "p1": { - "x": 0.4872751951136748, - "y": -0.01187648456057007 + "x": 0.46992665036674774, + "y": -0.000488997555012224 }, "p2": { - "x": 0, - "y": 1 + "x": 103.52951745304472, + "y": 0.09592679252182279 + } + } + }, + { + "ID": "14484", + "typeID": "Arrow", + "zOrder": "40", + "w": "71", + "h": "41", + "measuredW": "150", + "measuredH": "100", + "x": "860", + "y": "2181", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.3477799948213942, + "y": 41.100482780854236 + }, + "p1": { + "x": 0.43463702116260416, + "y": 0.12389499062416165 }, + "p2": { + "x": 70.96222015402327, + "y": -0.2941890366091684 + } + } + }, + { + "ID": "14485", + "typeID": "Arrow", + "zOrder": "39", + "w": "85", + "h": "82", + "measuredW": "150", + "measuredH": "100", + "x": "865", + "y": "2188", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", "rightArrow": "false", - "stroke": "dotted" + "stroke": "dotted", + "p0": { + "x": 0.2177413851111396, + "y": 81.58260633617965 + }, + "p1": { + "x": 0.43463702116260416, + "y": 0.1238949906241616 + }, + "p2": { + "x": 85.44206571518248, + "y": 0.010753048825790756 + } + } + }, + { + "ID": "14486", + "typeID": "__group__", + "zOrder": "255", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "956", + "y": "2422", + "properties": { + "controlName": "106-apis:graphql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "146", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "71", + "measuredH": "25", + "x": "37", + "y": "7", + "properties": { + "align": "center", + "size": "17", + "text": "GraphQL" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } } }, { - "ID": "14305", + "ID": "14492", "typeID": "Arrow", - "zOrder": "251", - "w": "56", - "h": "1", + "zOrder": "38", + "w": "1", + "h": "76", "measuredW": "150", "measuredH": "100", - "x": "440", - "y": "1142", + "x": "1393", + "y": "3182", "properties": { "color": "2848996", - "curvature": "-1", + "direction": "bottom", "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", "p0": { - "x": -0.5, - "y": 0 + "x": 0, + "y": 76.34691492882303 }, "p1": { - "x": 0.4872751951136748, - "y": -0.011876484560570066 + "x": 0.5702216182256714, + "y": -0.004517251466967862 }, "p2": { - "x": 55, - "y": 0 - }, - "rightArrow": "false", - "stroke": "dotted" + "x": 0, + "y": 0.4406451246140932 + } } }, { - "ID": "14306", + "ID": "14493", "typeID": "__group__", - "zOrder": "252", - "measuredW": "224", - "measuredH": "62", - "w": "224", - "h": "62", - "x": "222", - "y": "1106", + "zOrder": "256", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "1310", + "y": "3171", "properties": { - "controlName": "100-version-control-systems:git" + "controlName": "103-containerization:kubernetes" }, "children": { "controls": { @@ -12376,27 +12610,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "216", - "h": "54", + "w": "144", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "8", - "y": "8", + "x": "9", + "y": "0", "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "144", + "measuredW": "90", "measuredH": "25", - "x": "44", - "y": "23", + "x": "36", + "y": "7", "properties": { - "text": "Basic Usage of Git", - "size": "17" + "size": "17", + "text": "Kubernetes" } }, { @@ -12406,7 +12640,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -12422,7 +12656,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -12436,17 +12670,17 @@ } }, { - "ID": "14307", + "ID": "14496", "typeID": "__group__", - "zOrder": "253", - "measuredW": "138", - "measuredH": "57", - "w": "138", - "h": "57", - "x": "1198", - "y": "1008", + "zOrder": "257", + "measuredW": "169", + "measuredH": "102", + "w": "169", + "h": "102", + "x": "849", + "y": "1930", "properties": { - "controlName": "100-repo-hosting-services:github" + "controlName": "120-graph-databases" }, "children": { "controls": { @@ -12455,764 +12689,757 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "131", - "h": "49", + "w": "169", + "h": "102", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "8", - "properties": { - "color": "16776960" - } + "y": "0" }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "54", + "measuredW": "85", "measuredH": "25", - "x": "39", - "y": "21", + "x": "42", + "y": "64", "properties": { - "text": "GitHub", - "size": "17" + "size": "17", + "text": "Graph DBs" } }, { "ID": "2", - "typeID": "Icon", + "typeID": "TextArea", "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "114", - "y": "0", + "w": "143", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "14", + "y": "15", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } + "color": "16770457" } }, { "ID": "3", - "typeID": "Icon", + "typeID": "Label", "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "114", - "y": "0", + "measuredW": "47", + "measuredH": "25", + "x": "62", + "y": "24", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } + "size": "17", + "text": "Neo4j" } - } - ] + }, + { + "ID": "4", + "typeID": "__group__", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "5", + "y": "24", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + } + ] + } + } + }, + { + "ID": "14497", + "typeID": "Arrow", + "zOrder": "37", + "w": "1", + "h": "106", + "measuredW": "150", + "measuredH": "100", + "x": "1228", + "y": "2071", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.46992665036674797, + "y": -0.0004889975550122331 + }, + "p2": { + "x": 0, + "y": 106.37551896409877 + } + } + }, + { + "ID": "14499", + "typeID": "Arrow", + "zOrder": "34", + "w": "111", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1105", + "y": "2166", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0.04261279713523436, + "y": 0.3755189640987737 + }, + "p1": { + "x": 0.4699266503667479, + "y": -0.0004889975550122328 + }, + "p2": { + "x": 111, + "y": 0.3755189640987737 + } + } + }, + { + "ID": "14500", + "typeID": "Arrow", + "zOrder": "36", + "w": "1", + "h": "99", + "measuredW": "150", + "measuredH": "100", + "x": "1031", + "y": "2178", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4699266503667479, + "y": -0.0004889975550122329 + }, + "p2": { + "x": 0, + "y": 98.50806291693607 + } + } + }, + { + "ID": "14501", + "typeID": "Arrow", + "zOrder": "35", + "w": "201", + "h": "180", + "measuredW": "150", + "measuredH": "100", + "x": "1085", + "y": "2182", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.44276318265201553, + "y": 0.046489627115988696 + }, + "p1": { + "x": 0.49484282315015704, + "y": 0.17344202855363883 + }, + "p2": { + "x": 200.399593928993, + "y": 179.89103205690662 + } + } + }, + { + "ID": "14502", + "typeID": "Arrow", + "zOrder": "33", + "w": "105", + "h": "6", + "measuredW": "150", + "measuredH": "100", + "x": "1319", + "y": "2357", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 104.8501699892604, + "y": 0 + }, + "p1": { + "x": 0.465278934221482, + "y": -0.0013322231473772486 + }, + "p2": { + "x": -0.1831206274359829, + "y": 5.78948687398406 + } + } + }, + { + "ID": "14504", + "typeID": "Arrow", + "zOrder": "32", + "w": "80", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "1326", + "y": "2307", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 80.73800466406828, + "y": 0.19194556900447424 + }, + "p1": { + "x": 0.46208226221079857, + "y": 0.1105398457583562 + }, + "p2": { + "x": 0.4878500355812321, + "y": 47.3979188798794 + } + } + }, + { + "ID": "14507", + "typeID": "Arrow", + "zOrder": "31", + "w": "100", + "h": "33", + "measuredW": "150", + "measuredH": "100", + "x": "1312", + "y": "2371", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 100.6387513279276, + "y": 32.964190856298046 + }, + "p1": { + "x": 0.3846922212510933, + "y": -0.13210138594081824 + }, + "p2": { + "x": 0.32605804231866387, + "y": -0.07999046131453724 } } }, { - "ID": "14308", - "typeID": "__group__", - "zOrder": "254", - "measuredW": "319", - "measuredH": "78", - "w": "319", - "h": "78", - "x": "853", - "y": "1099", + "ID": "14508", + "typeID": "Arrow", + "zOrder": "29", + "w": "60", + "h": "30", + "measuredW": "150", + "measuredH": "100", + "x": "1514", + "y": "2361", "properties": { - "controlName": "105-repo-hosting-services" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "319", - "h": "78", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "172", - "measuredH": "25", - "x": "74", - "y": "15", - "properties": { - "text": "Repo hosting services", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "w": "279", - "measuredW": "275", - "measuredH": "23", - "x": "20", - "y": "41", - "properties": { - "size": "15", - "text": "Create account and Learn to use GitHub" - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 60.31920991767379, + "y": 30.162697528578974 + }, + "p1": { + "x": 0.38469222125109326, + "y": -0.13210138594081827 + }, + "p2": { + "x": 0.32605804231866387, + "y": -0.07999046131453724 } } }, { - "ID": "14309", - "typeID": "__group__", - "zOrder": "255", - "measuredW": "336", - "measuredH": "77", - "w": "336", - "h": "77", - "x": "484", - "y": "1100", + "ID": "14509", + "typeID": "Arrow", + "zOrder": "30", + "w": "61", + "h": "24", + "measuredW": "150", + "measuredH": "100", + "x": "1518", + "y": "2325", "properties": { - "controlName": "104-version-control-systems" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "336", - "h": "77", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "186", - "measuredH": "25", - "x": "75", - "y": "15", - "properties": { - "text": "Version Control Systems", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "w": "292", - "measuredW": "285", - "measuredH": "23", - "x": "22", - "y": "40", - "properties": { - "size": "15", - "text": "What are they and why you should use one" - } - } - ] + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 61.039807248761235, + "y": 0.07433489335426202 + }, + "p1": { + "x": 0.46208226221079857, + "y": 0.11053984575835622 + }, + "p2": { + "x": 0.4878500355812321, + "y": 24.3979188798794 } } }, { - "ID": "14310", - "typeID": "__group__", - "zOrder": "256", - "measuredW": "140", - "measuredH": "53", - "w": "140", - "h": "53", - "x": "1198", - "y": "1120", + "ID": "14510", + "typeID": "Arrow", + "zOrder": "28", + "w": "1", + "h": "231", + "measuredW": "150", + "measuredH": "100", + "x": "1287", + "y": "2373", "properties": { - "controlName": "102-repo-hosting-services:bitbucket" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "131", - "h": "49", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "4", - "properties": { - "backgroundAlpha": "0.5", - "color": "10066329" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "80", - "measuredW": "75", - "measuredH": "25", - "x": "26", - "y": "16", - "properties": { - "bold": "true", - "color": "3355443", - "size": "17", - "text": "Bitbucket" - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "5", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 1, + "y": 230.99950276112986 + }, + "p1": { + "x": 0.5029666818804198, + "y": 0.0027384755819260605 + }, + "p2": { + "x": 1, + "y": -0.5 + } + } + }, + { + "ID": "14514", + "typeID": "Arrow", + "zOrder": "26", + "w": "155", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "1085", + "y": "2638", + "properties": { + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.009024679748335984, + "y": 4.145913893075885 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 154.57320260870983, + "y": -0.3887220358042214 } } }, { - "ID": "14311", - "typeID": "__group__", - "zOrder": "257", - "measuredW": "140", - "measuredH": "54", - "w": "140", - "h": "54", - "x": "1198", - "y": "1065", + "ID": "14515", + "typeID": "Arrow", + "zOrder": "24", + "w": "106", + "h": "32", + "measuredW": "150", + "measuredH": "100", + "x": "1126", + "y": "2595", "properties": { - "controlName": "101-repo-hosting-services:gitlab" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "131", - "h": "49", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "5", - "properties": { - "backgroundAlpha": "0.5", - "color": "10066329" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "52", - "measuredW": "52", - "measuredH": "25", - "x": "40", - "y": "17", - "properties": { - "bold": "true", - "color": "3355443", - "size": "17", - "text": "GitLab" - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "4", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "5", - "typeID": "Icon", - "zOrder": "4", - "measuredW": "24", - "measuredH": "24", - "x": "116", - "y": "0", - "properties": { - "color": "3700253", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.3537016835969098, + "y": -0.2378178001258675 + }, + "p1": { + "x": 0.42742041137167663, + "y": -0.06871479103891165 + }, + "p2": { + "x": 105.32924772165484, + "y": 31.71284132239225 } } }, { - "ID": "14312", - "typeID": "__group__", - "zOrder": "258", - "measuredW": "178", - "measuredH": "48", - "w": "178", - "h": "48", - "x": "541", - "y": "1294", + "ID": "14516", + "typeID": "Arrow", + "zOrder": "25", + "w": "111", + "h": "63", + "measuredW": "150", + "measuredH": "100", + "x": "1123", + "y": "2553", "properties": { - "controlName": "100-more-about-databases:orms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "171", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "7", - "y": "8", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "49", - "measuredW": "49", - "measuredH": "25", - "x": "71", - "y": "16", - "properties": { - "size": "17", - "text": "ORMs" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.18855530697851464, + "y": -0.01944896034137855 + }, + "p1": { + "x": 0.45567203993408567, + "y": -0.07608673207967252 + }, + "p2": { + "x": 110.78699073107919, + "y": 62.65299777998234 + } + } + }, + { + "ID": "14517", + "typeID": "Arrow", + "zOrder": "23", + "w": "256", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "978", + "y": "2700", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0.2554500412181824, + "y": 0.3755189640987737 + }, + "p1": { + "x": 0.4699266503667478, + "y": -0.0004889975550122319 + }, + "p2": { + "x": 256, + "y": 0.3755189640987737 + } + } + }, + { + "ID": "14518", + "typeID": "Arrow", + "zOrder": "22", + "w": "1", + "h": "55", + "measuredW": "150", + "measuredH": "100", + "x": "800", + "y": "2805", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 54.98738859570176 + }, + "p1": { + "x": 0.5702216182256715, + "y": -0.004517251466967863 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 + }, + "stroke": "dotted" + } + }, + { + "ID": "14519", + "typeID": "Arrow", + "zOrder": "21", + "w": "1", + "h": "93", + "measuredW": "150", + "measuredH": "100", + "x": "800", + "y": "2707", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 92.900763034168 + }, + "p1": { + "x": 0.5702216182256716, + "y": -0.004517251466967863 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 } } }, { - "ID": "14313", - "typeID": "__group__", - "zOrder": "259", - "measuredW": "148", - "measuredH": "57", - "w": "148", - "h": "57", - "x": "545", - "y": "2042", + "ID": "14520", + "typeID": "Arrow", + "zOrder": "20", + "w": "213", + "h": "88", + "measuredW": "150", + "measuredH": "100", + "x": "974", + "y": "2796", "properties": { - "controlName": "113-ci-cd" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "140", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "7", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "62", - "measuredW": "59", - "measuredH": "25", - "x": "47", - "y": "20", - "properties": { - "size": "17", - "text": "CI / CD" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.3036632412641893, + "y": 0.039045956690642925 + }, + "p1": { + "x": 0.5568669211533102, + "y": 0.12268077887612237 + }, + "p2": { + "x": 212.6720572404124, + "y": 87.96480211885091 } } }, { - "ID": "14314", - "typeID": "__group__", - "zOrder": "260", - "measuredW": "324", - "measuredH": "50", - "w": "324", - "h": "50", - "x": "521", - "y": "2133", + "ID": "14521", + "typeID": "Arrow", + "zOrder": "19", + "w": "165", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1320", + "y": "2892", "properties": { - "controlName": "114-design-and-development-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "324", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "275", - "measuredH": "25", - "x": "24", - "y": "13", - "properties": { - "size": "17", - "text": "Design and Development Principles" - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.1889462273964, + "y": 0.47782109382569615 + }, + "p1": { + "x": 0.4999999999999998, + "y": 1.557694937922094e-18 + }, + "p2": { + "x": 165.61962819175665, + "y": 1.780424888820562 } } }, { - "ID": "14319", - "typeID": "__group__", - "zOrder": "261", - "measuredW": "268", - "measuredH": "46", - "w": "268", - "h": "46", - "x": "168", - "y": "2081", + "ID": "14522", + "typeID": "Arrow", + "zOrder": "18", + "w": "159", + "h": "35", + "measuredW": "150", + "measuredH": "100", + "x": "1314", + "y": "2908", "properties": { - "controlName": "100-design-and-development-principles:gof-design-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "260", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "6", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "168", - "measuredW": "164", - "measuredH": "25", - "x": "54", - "y": "13", - "properties": { - "size": "17", - "text": "GOF Design Patterns" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.3240727475786116, + "y": 0.10906663376545112 + }, + "p1": { + "x": 0.49706031424227115, + "y": 0.061378611251901104 + }, + "p2": { + "x": 158.59359024180708, + "y": 35.27936909862956 + } + } + }, + { + "ID": "14523", + "typeID": "Arrow", + "zOrder": "17", + "w": "165", + "h": "75", + "measuredW": "150", + "measuredH": "100", + "x": "1307", + "y": "2915", + "properties": { + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": 0.1629082774466042, + "y": -0.37791439125976467 + }, + "p1": { + "x": 0.497060314242271, + "y": 0.0613786112519011 + }, + "p2": { + "x": 165.59359024180708, + "y": 74.27936909862956 } } }, { - "ID": "14320", - "typeID": "__group__", - "zOrder": "262", - "measuredW": "268", - "measuredH": "45", - "w": "268", - "h": "45", - "x": "168", - "y": "2127", + "ID": "14524", + "typeID": "Arrow", + "zOrder": "16", + "w": "172", + "h": "116", + "measuredW": "150", + "measuredH": "100", + "x": "1297", + "y": "2915", "properties": { - "controlName": "101-design-and-development-principles:domain-driven-design" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "260", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "8", - "y": "5", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "175", - "measuredW": "172", - "measuredH": "25", - "x": "50", - "y": "12", - "properties": { - "size": "17", - "text": "Domain Driven Design" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "10066329", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.2579220825130051, + "y": -0.37791439125976467 + }, + "p1": { + "x": 0.49706031424227093, + "y": 0.061378611251901014 + }, + "p2": { + "x": 171.68577885682225, + "y": 115.55382336329194 } } }, { - "ID": "14321", + "ID": "14526", "typeID": "__group__", - "zOrder": "263", + "zOrder": "266", "measuredW": "268", - "measuredH": "43", + "measuredH": "40", "w": "268", - "h": "43", - "x": "168", - "y": "2174", + "h": "40", + "x": "667", + "y": "2987", "properties": { - "controlName": "102-design-and-development-principles:test-driven-development" + "controlName": "103-design-and-development-principles:cqrs" }, "children": { "controls": { @@ -13226,7 +13453,7 @@ "measuredW": "200", "measuredH": "140", "x": "8", - "y": "3", + "y": "0", "properties": { "color": "16770457" } @@ -13235,14 +13462,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "196", - "measuredW": "194", + "measuredW": "48", "measuredH": "25", - "x": "40", - "y": "10", + "x": "114", + "y": "7", "properties": { "size": "17", - "text": "Test Driven Development" + "text": "CQRS" } }, { @@ -13252,7 +13478,7 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -13268,13 +13494,13 @@ "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "10066329", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -13282,17 +13508,17 @@ } }, { - "ID": "14322", + "ID": "14527", "typeID": "__group__", - "zOrder": "264", - "measuredW": "254", + "zOrder": "267", + "measuredW": "268", "measuredH": "40", - "w": "254", + "w": "268", "h": "40", - "x": "977", - "y": "2364", + "x": "667", + "y": "3032", "properties": { - "controlName": "104-architectural-patterns:serverless" + "controlName": "104-design-and-development-principles:event-sourcing" }, "children": { "controls": { @@ -13301,159 +13527,37 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "245", - "h": "37", + "w": "260", + "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "3", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "87", - "measuredW": "82", - "measuredH": "25", - "x": "79", - "y": "9", - "properties": { - "size": "17", - "text": "Serverless" - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "230", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "3", - "typeID": "Icon", - "zOrder": "3", - "measuredW": "24", - "measuredH": "24", - "x": "230", + "x": "8", "y": "0", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" - } - } - } - ] - } - } - }, - { - "ID": "14323", - "typeID": "__group__", - "zOrder": "265", - "measuredW": "328", - "measuredH": "138", - "w": "328", - "h": "138", - "x": "581", - "y": "2844", - "properties": { - "controlName": "123-scalability" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "318", - "h": "129", - "measuredW": "200", - "measuredH": "140", - "x": "10", - "y": "9", - "properties": { - "color": "16776960" + "color": "16770457" } }, { "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "134", - "measuredH": "25", - "x": "102", - "y": "25", - "properties": { - "text": "Building for Scale", - "size": "17" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "w": "264", - "measuredW": "260", - "measuredH": "24", - "x": "37", - "y": "53", - "properties": { - "size": "16", - "text": "General topics that you should learn" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "w": "270", - "measuredW": "258", - "measuredH": "24", - "x": "34", - "y": "76", - "properties": { - "size": "16", - "text": "and care about for the sustainability" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "w": "108", - "measuredW": "105", - "measuredH": "24", - "x": "115", - "y": "100", + "typeID": "Label", + "zOrder": "1", + "measuredW": "116", + "measuredH": "25", + "x": "80", + "y": "7", "properties": { - "size": "16", - "text": "of the product." + "size": "17", + "text": "Event Sourcing" } }, { - "ID": "5", + "ID": "2", "typeID": "Icon", - "zOrder": "5", + "zOrder": "2", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { "color": "16777215", "icon": { @@ -13463,19 +13567,19 @@ } }, { - "ID": "6", + "ID": "3", "typeID": "Icon", - "zOrder": "6", + "zOrder": "3", "measuredW": "24", "measuredH": "24", "x": "0", - "y": "0", + "y": "8", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -13483,17 +13587,17 @@ } }, { - "ID": "14324", + "ID": "14528", "typeID": "__group__", - "zOrder": "266", - "measuredW": "210", - "measuredH": "48", - "w": "210", - "h": "48", - "x": "335", - "y": "2770", + "zOrder": "268", + "measuredW": "254", + "measuredH": "37", + "w": "254", + "h": "37", + "x": "1461", + "y": "3052", "properties": { - "controlName": "100-scalability:mitigation-strategies" + "controlName": "105-architectural-patterns:service-mesh" }, "children": { "controls": { @@ -13502,12 +13606,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "199", - "h": "40", + "w": "245", + "h": "37", "measuredW": "200", "measuredH": "140", "x": "0", - "y": "8", + "y": "0", "properties": { "color": "16770457" } @@ -13516,14 +13620,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "159", - "measuredW": "159", + "measuredW": "105", "measuredH": "25", - "x": "20", - "y": "15", + "x": "70", + "y": "6", "properties": { "size": "17", - "text": "Mitigation Strategies" + "text": "Service Mesh" } }, { @@ -13532,8 +13635,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "186", - "y": "0", + "x": "230", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -13548,8 +13651,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "186", - "y": "0", + "x": "230", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -13563,17 +13666,17 @@ } }, { - "ID": "14325", + "ID": "14529", "typeID": "__group__", - "zOrder": "267", - "measuredW": "198", - "measuredH": "36", - "w": "198", - "h": "36", - "x": "336", - "y": "2915", + "zOrder": "269", + "measuredW": "254", + "measuredH": "37", + "w": "254", + "h": "37", + "x": "1461", + "y": "3095", "properties": { - "controlName": "101-scalability:instrumentation-monitoring-telemetry" + "controlName": "106-architectural-patterns:twelve-factor-apps" }, "children": { "controls": { @@ -13582,8 +13685,8 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "198", - "h": "36", + "w": "245", + "h": "37", "measuredW": "200", "measuredH": "140", "x": "0", @@ -13596,14 +13699,45 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "155", - "measuredW": "154", + "measuredW": "149", "measuredH": "25", - "x": "22", + "x": "48", "y": "6", "properties": { "size": "17", - "text": "Understand the Diff." + "text": "Twelve Factor Apps" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "230", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "230", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } } } ] @@ -13611,129 +13745,151 @@ } }, { - "ID": "14326", - "typeID": "Label", - "zOrder": "268", - "w": "84", - "measuredW": "83", - "measuredH": "25", - "x": "189", - "y": "2926", - "properties": { - "size": "17", - "text": "Monitoring" - } - }, - { - "ID": "14327", - "typeID": "Label", - "zOrder": "269", - "w": "78", - "measuredW": "73", - "measuredH": "25", - "x": "182", - "y": "2769", - "properties": { - "size": "17", - "text": "Throttling" - } - }, - { - "ID": "14328", - "typeID": "Label", - "zOrder": "270", - "w": "109", - "measuredW": "107", - "measuredH": "25", - "x": "151", - "y": "2797", - "properties": { - "size": "17", - "text": "Backpressure" - } - }, - { - "ID": "14329", - "typeID": "Label", - "zOrder": "271", - "w": "100", - "measuredW": "94", - "measuredH": "25", - "x": "160", - "y": "2825", - "properties": { - "size": "17", - "text": "Loadshifting" - } - }, - { - "ID": "14330", - "typeID": "Label", - "zOrder": "272", - "w": "70", - "measuredW": "66", - "measuredH": "25", - "x": "188", - "y": "2719", + "ID": "14530", + "typeID": "Arrow", + "zOrder": "14", + "w": "182", + "h": "159", + "measuredW": "150", + "measuredH": "100", + "x": "1286", + "y": "2918", "properties": { - "size": "17", - "text": "Graceful" + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.33005433997027467, + "y": 0.4838026862175866 + }, + "p1": { + "x": 0.4970603142422708, + "y": 0.06137861125190098 + }, + "p2": { + "x": 182.03447695932482, + "y": 159.40146567560305 + } } }, { - "ID": "14331", - "typeID": "Label", - "zOrder": "273", - "w": "84", - "measuredW": "76", - "measuredH": "25", - "x": "187", - "y": "2951", + "ID": "14531", + "typeID": "Arrow", + "zOrder": "15", + "w": "205", + "h": "203", + "measuredW": "150", + "measuredH": "100", + "x": "1263", + "y": "2918", "properties": { - "size": "17", - "text": "Telemetry" + "curvature": "0", + "rightArrow": "false", + "leftArrow": "false", + "color": "10027263", + "stroke": "dotted", + "p0": { + "x": -0.33005433997027467, + "y": 0.4838026862175866 + }, + "p1": { + "x": 0.49706031424227093, + "y": 0.06137861125190101 + }, + "p2": { + "x": 205.03447695932482, + "y": 203.68999470543167 + } } }, { - "ID": "14332", - "typeID": "Label", - "zOrder": "274", - "w": "124", - "measuredW": "121", - "measuredH": "25", - "x": "149", - "y": "2901", + "ID": "14534", + "typeID": "Arrow", + "zOrder": "13", + "w": "1", + "h": "111", + "measuredW": "150", + "measuredH": "100", + "x": "1184", + "y": "2908", "properties": { - "size": "17", - "text": "Instrumentation" + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 111.43559679832697 + }, + "p1": { + "x": 0.5702216182256715, + "y": -0.004517251466967863 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 + } } }, { - "ID": "14333", - "typeID": "Label", - "zOrder": "275", - "w": "118", - "measuredW": "116", - "measuredH": "25", - "x": "142", - "y": "2850", + "ID": "14535", + "typeID": "__group__", + "zOrder": "270", + "measuredW": "198", + "measuredH": "159", + "w": "198", + "h": "159", + "x": "1110", + "y": "2975", "properties": { - "size": "17", - "text": "Circuit Breaker" + "controlName": "116-search-engines" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "159", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "126", + "measuredW": "122", + "measuredH": "25", + "x": "36", + "y": "116", + "properties": { + "size": "17", + "text": "Search Engines" + } + } + ] + } } }, { - "ID": "14334", + "ID": "14542", "typeID": "__group__", - "zOrder": "276", - "measuredW": "342", - "measuredH": "49", - "w": "342", - "h": "49", - "x": "958", - "y": "2879", + "zOrder": "273", + "measuredW": "169", + "measuredH": "40", + "w": "169", + "h": "40", + "x": "767", + "y": "3109", "properties": { - "controlName": "102-scalability:migration-strategies" + "controlName": "100-message-brokers:rabbitmq" }, "children": { "controls": { @@ -13742,12 +13898,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "333", + "w": "160", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "9", + "x": "9", + "y": "0", "properties": { "color": "16770457" } @@ -13756,13 +13912,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "measuredW": "155", + "measuredW": "78", "measuredH": "25", - "x": "93", - "y": "16", + "x": "50", + "y": "7", "properties": { - "text": "Migration Strategies", - "size": "17" + "size": "17", + "text": "RabbitMQ" } }, { @@ -13771,8 +13927,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "318", - "y": "0", + "x": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -13787,8 +13943,8 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "318", - "y": "0", + "x": "0", + "y": "7", "properties": { "color": "10027263", "icon": { @@ -13802,17 +13958,17 @@ } }, { - "ID": "14335", + "ID": "14543", "typeID": "__group__", - "zOrder": "277", - "measuredW": "341", - "measuredH": "42", - "w": "341", - "h": "42", - "x": "959", - "y": "2932", + "zOrder": "274", + "measuredW": "169", + "measuredH": "40", + "w": "169", + "h": "40", + "x": "767", + "y": "3154", "properties": { - "controlName": "103-scalability:horizontal-vertical-scaling" + "controlName": "100-message-brokers:rabbitmq" }, "children": { "controls": { @@ -13821,12 +13977,12 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "332", + "w": "160", "h": "40", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "2", + "x": "9", + "y": "0", "properties": { "color": "16770457" } @@ -13835,14 +13991,13 @@ "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "230", - "measuredW": "221", + "measuredW": "44", "measuredH": "25", - "x": "54", - "y": "9", + "x": "67", + "y": "7", "properties": { "size": "17", - "text": "Horizontal vs Vertical Scaling" + "text": "Kafka" } }, { @@ -13851,8 +14006,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "317", - "y": "0", + "x": "0", + "y": "7", "properties": { "color": "16777215", "icon": { @@ -13867,14 +14022,14 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "317", - "y": "0", + "x": "0", + "y": "7", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "40463" } } ] @@ -13882,127 +14037,283 @@ } }, { - "ID": "14336", - "typeID": "Label", - "zOrder": "278", - "w": "96", - "measuredW": "96", - "measuredH": "25", - "x": "162", - "y": "2739", + "ID": "14544", + "typeID": "Arrow", + "zOrder": "12", + "w": "1", + "h": "69", + "measuredW": "150", + "measuredH": "100", + "x": "886", + "y": "3181", "properties": { - "size": "17", - "text": "Degradation" + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 68.99646851243597 + }, + "p1": { + "x": 0.5702216182256716, + "y": -0.004517251466967864 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 + }, + "stroke": "dotted" } }, { - "ID": "14337", - "typeID": "Icon", - "zOrder": "279", - "measuredW": "24", - "measuredH": "24", - "x": "451", - "y": "1521", + "ID": "14545", + "typeID": "Arrow", + "zOrder": "11", + "w": "177", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1037", + "y": "3266", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.12737918400853232, + "y": 0.3755189640987737 + }, + "p1": { + "x": 0.46992665036674786, + "y": -0.000488997555012232 + }, + "p2": { + "x": 177.02673693530664, + "y": 0.3755189640987737 } } }, { - "ID": "14338", - "typeID": "Icon", - "zOrder": "280", - "measuredW": "24", - "measuredH": "24", - "x": "451", - "y": "1521", + "ID": "14546", + "typeID": "Arrow", + "zOrder": "10", + "w": "164", + "h": "8", + "measuredW": "150", + "measuredH": "100", + "x": "1427", + "y": "3265", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.24326201347912502, + "y": 8.106467390752641 + }, + "p1": { + "x": 0.4699266503667479, + "y": -0.000488997555012235 + }, + "p2": { + "x": 164.02673693530664, + "y": 0.3755189640987737 + }, + "stroke": "dotted" + } + }, + { + "ID": "14547", + "typeID": "Arrow", + "zOrder": "9", + "w": "108", + "h": "45", + "measuredW": "150", + "measuredH": "100", + "x": "1438", + "y": "3215", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.0021112908482336934, + "y": 45.455422423384334 + }, + "p1": { + "x": 0.5000719114051478, + "y": -0.07795196318136031 + }, + "p2": { + "x": 108.23882934499807, + "y": 0.47392920607535416 } } }, { - "ID": "14339", - "typeID": "Icon", - "zOrder": "281", - "measuredW": "24", - "measuredH": "24", - "x": "1292", - "y": "1723", + "ID": "14548", + "typeID": "Arrow", + "zOrder": "8", + "w": "1", + "h": "88", + "measuredW": "150", + "measuredH": "100", + "x": "1393", + "y": "3267", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 87.63542384712537 + }, + "p1": { + "x": 0.5702216182256716, + "y": -0.004517251466967863 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 } } }, { - "ID": "14340", - "typeID": "Icon", - "zOrder": "282", - "measuredW": "24", - "measuredH": "24", - "x": "1292", - "y": "1723", + "ID": "14549", + "typeID": "Arrow", + "zOrder": "7", + "w": "146", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1453", + "y": "3349", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.238336247222378, + "y": 0.01273719496157355 + }, + "p1": { + "x": 0.46992665036674774, + "y": -0.0004889975550122332 + }, + "p2": { + "x": 145.95151670903215, + "y": 0.2297521840846457 } } }, { - "ID": "14341", - "typeID": "Icon", - "zOrder": "283", - "measuredW": "24", - "measuredH": "24", - "x": "1297", - "y": "1930", + "ID": "14550", + "typeID": "Arrow", + "zOrder": "6", + "w": "101", + "h": "38", + "measuredW": "150", + "measuredH": "100", + "x": "1454", + "y": "3360", "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.16733541581857025, + "y": 0.25811049928915963 + }, + "p1": { + "x": 0.5831524955612538, + "y": 0.09015584927993948 + }, + "p2": { + "x": 101.37569515476389, + "y": 38.211245401393626 + } + } + }, + { + "ID": "14551", + "typeID": "Arrow", + "zOrder": "5", + "w": "177", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1190", + "y": "3353", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.12737918400853232, + "y": 0.3755189640987737 + }, + "p1": { + "x": 0.46992665036674786, + "y": -0.000488997555012232 + }, + "p2": { + "x": 177.02673693530664, + "y": 0.3755189640987737 } } }, { - "ID": "14342", - "typeID": "Icon", - "zOrder": "284", - "measuredW": "24", - "measuredH": "24", - "x": "1297", - "y": "1930", + "ID": "14552", + "typeID": "Arrow", + "zOrder": "4", + "w": "177", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "998", + "y": "3358", "properties": { - "color": "10027263", - "icon": { - "ID": "check-circle", - "size": "small" + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.12737918400853232, + "y": 0.3755189640987737 + }, + "p1": { + "x": 0.46992665036674786, + "y": -0.000488997555012232 + }, + "p2": { + "x": 177.02673693530664, + "y": 0.3755189640987737 } } }, { - "ID": "14343", + "ID": "14553", "typeID": "__group__", - "zOrder": "285", - "measuredW": "197", - "measuredH": "47", - "w": "197", - "h": "47", - "x": "1106", - "y": "1687", + "zOrder": "275", + "measuredW": "207", + "measuredH": "50", + "w": "207", + "h": "50", + "x": "917", + "y": "3332", "properties": { - "controlName": "103-apis:grpc" + "controlName": "122-server-sent-events" }, "children": { "controls": { @@ -14011,29 +14322,27 @@ "ID": "0", "typeID": "TextArea", "zOrder": "0", - "w": "188", - "h": "40", + "w": "197", + "h": "50", "measuredW": "200", "measuredH": "140", - "x": "0", - "y": "7", + "x": "10", + "y": "0", "properties": { - "color": "16770457" + "color": "16776960" } }, { "ID": "1", "typeID": "Label", "zOrder": "1", - "w": "90", - "measuredW": "45", + "measuredW": "148", "measuredH": "25", - "x": "49", - "y": "15", + "x": "35", + "y": "12", "properties": { - "align": "center", "size": "17", - "text": "gRPC" + "text": "Server Sent Events" } }, { @@ -14042,8 +14351,8 @@ "zOrder": "2", "measuredW": "24", "measuredH": "24", - "x": "173", - "y": "0", + "x": "0", + "y": "13", "properties": { "color": "16777215", "icon": { @@ -14058,14 +14367,14 @@ "zOrder": "3", "measuredW": "24", "measuredH": "24", - "x": "173", - "y": "0", + "x": "0", + "y": "13", "properties": { - "color": "10027263", "icon": { "ID": "check-circle", "size": "small" - } + }, + "color": "10027263" } } ] @@ -14073,203 +14382,121 @@ } }, { - "ID": "14344", - "typeID": "__group__", - "zOrder": "286", - "measuredW": "326", - "measuredH": "40", - "w": "326", - "h": "40", - "x": "1010", - "y": "1247", + "ID": "14554", + "typeID": "Arrow", + "zOrder": "3", + "w": "1", + "h": "88", + "measuredW": "150", + "measuredH": "100", + "x": "992", + "y": "3355", "properties": { - "controlName": "101-nosql-databases:column-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "326", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "96", - "measuredH": "25", - "x": "15", - "y": "8", - "properties": { - "size": "17", - "text": "Column DBs" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "83", - "measuredH": "25", - "x": "120", - "y": "8", - "properties": { - "size": "17", - "text": "{color:blue}Cassandra{color}" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 87.63542384712537 + }, + "p1": { + "x": 0.5702216182256716, + "y": -0.004517251466967863 + }, + "p2": { + "x": 0, + "y": 0.10236492325770996 } } }, { - "ID": "14345", - "typeID": "__group__", - "zOrder": "287", - "measuredW": "328", - "measuredH": "40", - "w": "328", - "h": "40", - "x": "1009", - "y": "1292", + "ID": "14555", + "typeID": "Arrow", + "zOrder": "2", + "w": "152", + "h": "34", + "measuredW": "150", + "measuredH": "100", + "x": "806", + "y": "3420", "properties": { - "controlName": "102-nosql-databases:timeseries-databases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "328", - "h": "40", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "25", - "x": "16", - "y": "8", - "properties": { - "size": "17", - "text": "Time series" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "175", - "measuredH": "25", - "x": "120", - "y": "9", - "properties": { - "size": "17", - "text": "{color:blue}InfluxDB{color}, TimescaleDB" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 151.37091002541922, + "y": 34.11258943934581 + }, + "p1": { + "x": 0.6049019607843139, + "y": 0.06960784313725484 + }, + "p2": { + "x": -0.44162958299875754, + "y": 0.37646952636396236 } } }, { - "ID": "14357", + "ID": "14556", "typeID": "Arrow", - "zOrder": "0", - "w": "86", - "h": "20", + "zOrder": "1", + "w": "142", + "h": "76", "measuredW": "150", "measuredH": "100", - "x": "332", - "y": "2320", + "x": "817", + "y": "3373", "properties": { "color": "2848996", - "curvature": "0", "direction": "bottom", "leftArrow": "false", "rightArrow": "false", "stroke": "dotted", "p0": { - "x": 86.3287376086613, - "y": -0.09050190496964206 + "x": 141.77658168846017, + "y": 75.48990278718202 }, "p1": { - "x": 0.5156380838817266, - "y": -0.06987812461501966 + "x": 0.604901960784314, + "y": 0.06960784313725492 }, "p2": { - "x": 0.05062682870931212, - "y": 19.596770192063104 + "x": -0.19625627867151252, + "y": -0.41636701702691425 } } }, { - "ID": "14358", - "typeID": "__group__", - "zOrder": "288", - "measuredW": "324", - "measuredH": "50", - "w": "324", - "h": "50", - "x": "521", - "y": "2187", + "ID": "14557", + "typeID": "Arrow", + "zOrder": "0", + "w": "145", + "h": "112", + "measuredW": "150", + "measuredH": "100", + "x": "821", + "y": "3334", "properties": { - "controlName": "ext_link:roadmap.sh/software-design-architecture" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "324", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "4273622", - "borderColor": "4273622", - "textColor": "16777215" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "240", - "measuredH": "25", - "x": "42", - "y": "12", - "properties": { - "text": "Software Design & Architecture", - "size": "17", - "color": "16777215" - } - } - ] + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 144.80494000366468, + "y": 111.67855946110012 + }, + "p1": { + "x": 0.604901960784314, + "y": 0.06960784313725493 + }, + "p2": { + "x": -0.19625627867151252, + "y": -0.41636701702691425 } } } @@ -14283,10 +14510,10 @@ }, "branchID": "Master", "resourceID": "4BE92169-157F-4FC5-8E20-403CBCF7A6C6", - "mockupH": "3053", - "mockupW": "1196", - "measuredW": "1338", - "measuredH": "3232", + "mockupH": "3653", + "mockupW": "1177", + "measuredW": "1797", + "measuredH": "4285", "version": "1.0" }, "groupOffset": {