1 line
2.7 KiB
JavaScript
1 line
2.7 KiB
JavaScript
"use strict";(self.webpackChunkthreetwo_docs=self.webpackChunkthreetwo_docs||[]).push([[927],{1527:function(e,t,i){i.r(t),i.d(t,{frontMatter:function(){return c},contentTitle:function(){return l},metadata:function(){return s},toc:function(){return u},default:function(){return h}});var r=i(7462),o=i(3366),n=(i(7294),i(3905)),a=["components"],c={sidebar_position:4,id:"architecture",title:"Technical Architecture"},l=void 0,s={unversionedId:"architecture",id:"architecture",isDocsHomePage:!1,title:"Technical Architecture",description:"High-level Architecture",source:"@site/docs/architecture.md",sourceDirName:".",slug:"/architecture",permalink:"/threetwo-docs/docs/architecture",editUrl:"https://github.com/facebook/docusaurus/edit/main/website/docs/architecture.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,id:"architecture",title:"Technical Architecture"},sidebar:"tutorialSidebar",previous:{title:"Resources & Help",permalink:"/threetwo-docs/docs/resources"}},u=[{value:"High-level Architecture",id:"high-level-architecture",children:[]},{value:"Technical stack",id:"technical-stack",children:[]}],p={toc:u};function h(e){var t=e.components,i=(0,o.Z)(e,a);return(0,n.kt)("wrapper",(0,r.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h3",{id:"high-level-architecture"},"High-level Architecture"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"ThreeTwo!"),", the app is built upon the microservice architecture. The UI is a standalone ",(0,n.kt)("inlineCode",{parentName:"p"},"node.js")," app and the rest of the logic is broken into microservices."),(0,n.kt)("p",null,"The microservices deal with: "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Library functions (model orchestration, CRUD ops on comics, metadata)"),(0,n.kt)("li",{parentName:"ol"},"Comic Vine (scraping issues, volumes and more)"),(0,n.kt)("li",{parentName:"ol"},"Grand Comics Database (scraping, aggregations and more)"),(0,n.kt)("li",{parentName:"ol"},"Helpers (image transformation, file-system ops, compression/uncompression)")),(0,n.kt)("h3",{id:"technical-stack"},"Technical stack"),(0,n.kt)("p",null,(0,n.kt)("inlineCode",{parentName:"p"},"ThreeTwo!")," is written in ",(0,n.kt)("inlineCode",{parentName:"p"},"TypeScript")," from UI to the services layer."),(0,n.kt)("p",null,"The technologies used are: "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"React"),(0,n.kt)("li",{parentName:"ol"},"Redux"),(0,n.kt)("li",{parentName:"ol"},"moleculer"),(0,n.kt)("li",{parentName:"ol"},"RabbitMQ"),(0,n.kt)("li",{parentName:"ol"},"socket.io"),(0,n.kt)("li",{parentName:"ol"},"node.js"),(0,n.kt)("li",{parentName:"ol"},"Express"),(0,n.kt)("li",{parentName:"ol"},"MongoDB"),(0,n.kt)("li",{parentName:"ol"},"mongoose")))}h.isMDXComponent=!0}}]); |