{"id":1768,"date":"2023-02-02T08:36:54","date_gmt":"2023-02-02T08:36:54","guid":{"rendered":"https:\/\/blog.amt.in\/?p=1768"},"modified":"2023-02-02T08:36:54","modified_gmt":"2023-02-02T08:36:54","slug":"insights-on-meteor-js","status":"publish","type":"post","link":"https:\/\/blog.amt.in\/index.php\/2023\/02\/02\/insights-on-meteor-js\/","title":{"rendered":"Insights on Meteor JS"},"content":{"rendered":"<p>MeteorJS, is a\u00c2\u00a0free and open-source\u00c2\u00a0isomorphic\u00c2\u00a0JavaScript\u00c2\u00a0web framework\u00c2\u00a0written using\u00c2\u00a0Node.js. Meteor allows for rapid prototyping and produces cross-platform (Android,\u00c2\u00a0iOS,\u00c2\u00a0Web) code. It integrates with\u00c2\u00a0MongoDB\u00c2\u00a0and uses the\u00c2\u00a0Distributed Data Protocol\u00c2\u00a0and a\u00c2\u00a0publish\u00e2\u20ac\u201csubscribe pattern\u00c2\u00a0to automatically propagate data changes to clients without requiring the developer to write any synchronization code. On the client, Meteor can be used with its own Blaze templating engine, as well as with the\u00c2\u00a0Angular\u00c2\u00a0or\u00c2\u00a0React\u00c2\u00a0frameworks.<\/p>\n<p>A\u00c2\u00a0web framework\u00c2\u00a0(WF) or\u00c2\u00a0web application framework\u00c2\u00a0(WAF) is a\u00c2\u00a0software framework\u00c2\u00a0that is designed to support the development of\u00c2\u00a0web applications\u00c2\u00a0including web services,\u00c2\u00a0web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the\u00c2\u00a0World Wide Web. Web frameworks aim to\u00c2\u00a0automate\u00c2\u00a0the overhead associated with common activities performed in\u00c2\u00a0web development. For example, many web frameworks provide\u00c2\u00a0libraries\u00c2\u00a0for\u00c2\u00a0database\u00c2\u00a0access,\u00c2\u00a0templating\u00c2\u00a0frameworks, and\u00c2\u00a0session\u00c2\u00a0management, and they often promote\u00c2\u00a0code reuse.\u00c2\u00a0Although they often target development of\u00c2\u00a0dynamic web sites, they are also applicable to\u00c2\u00a0static websites.<\/p>\n<p>Many frameworks follow the MVC\u00c2\u00a0architectural pattern\u00c2\u00a0to separate the\u00c2\u00a0data model\u00c2\u00a0with\u00c2\u00a0business rules\u00c2\u00a0from the\u00c2\u00a0user interface. This is generally considered a good practice as it modularizes code, promotes\u00c2\u00a0code reuse, and allows multiple interfaces to be applied. In web applications, this permits different views to be presented, such as\u00c2\u00a0web pages\u00c2\u00a0for humans, and\u00c2\u00a0web service\u00c2\u00a0interfaces for remote applications.<\/p>\n<p>Most MVC frameworks follow a push-based architecture also called &#8220;action-based&#8221;. These frameworks use actions that do the required processing, and then &#8220;push&#8221; the data to the view layer to render the results.<\/p>\n<p>Django,\u00c2\u00a0Ruby on Rails,\u00c2\u00a0Symfony,\u00c2\u00a0SpringMVC,\u00c2\u00a0Stripes,\u00c2\u00a0Sails.js,\u00c2\u00a0Diamond,\u00c2\u00a0CodeIgniter\u00c2\u00a0are good examples of this architecture. An alternative to this is pull-based architecture, sometimes also called &#8220;component-based&#8221;. These frameworks start with the view layer, which can then &#8220;pull&#8221; results from multiple controllers as needed. In this architecture, multiple controllers can be involved with a single view.\u00c2\u00a0Lift,\u00c2\u00a0Tapestry,\u00c2\u00a0JBoss Seam,\u00c2\u00a0JavaServer Faces,\u00c2\u00a0(\u00c2\u00b5)Micro, and\u00c2\u00a0Wicket\u00c2\u00a0are examples of pull-based architectures.\u00c2\u00a0Play,\u00c2\u00a0Struts,\u00c2\u00a0RIFE, and\u00c2\u00a0ZK\u00c2\u00a0have support for both push- and pull-based application controller calls.<\/p>\n<p>In\u00c2\u00a0three-tier organization, applications are structured around three physical tiers: client, application, and database.\u00c2\u00a0The database is normally an\u00c2\u00a0RDBMS. The application contains the business logic, running on a server and communicates with the client using\u00c2\u00a0HTTP.\u00c2\u00a0The client on web applications is a web browser that runs HTML generated by the application layer.\u00c2\u00a0The term should not be confused with MVC, where, unlike in three-tier architecture, it is considered a good practice to keep business logic away from the controller, the &#8220;middle layer&#8221;.<\/p>\n<p>Meteor is developed by\u00c2\u00a0Meteor Software. The startup was incubated by\u00c2\u00a0Y Combinator\u00c2\u00a0and received $11.2M in funding from\u00c2\u00a0Andreessen Horowitz\u00c2\u00a0in July 2012.\u00c2\u00a0Meteor raised an additional $20M in Series B funding from Matrix Partners, Andreessen Horowitz and Trinity Ventures.\u00c2\u00a0It intends to become profitable by offering Galaxy, an enterprise-grade hosting environment for Meteor applications.<\/p>\n<p>Having been in development for about 8 months, Meteor was initially released in December 2011 under the name Skybreak.\u00c2\u00a0By April 2012, the framework was renamed Meteor and officially launched.\u00c2\u00a0During the next few months, and with the help of large investments from Andreessen Horowitz and endorsements from high-profile figures in the startup world, Meteor steadily increased its user base and became more commonly used in production websites.<\/p>\n<p>Particularly after receiving large amounts of\u00c2\u00a0venture capital\u00c2\u00a0in its Series B funding round, Meteor acquired and integrated several other startups into its core product. Acquisitions have included FathomDB, a cloud database startup,\u00c2\u00a0Galaxy, a cloud platform for operating and managing Meteor applications,\u00c2\u00a0and Kadira, a performance monitoring solution.\u00c2\u00a0Meteor has successfully monetized its userbase: In 2016, Meteor beat its own revenue goals by 30% by offering web hosting for Meteor apps through Galaxy.<\/p>\n<p>From 2016 the Meteor Development Group (the open source organisation powering Meteor) started working on a new backend layer based on\u00c2\u00a0GraphQL\u00c2\u00a0to gradually replace their pub\/sub system, largely isolated in the whole node.js ecosystem: the Apollo framework.<\/p>\n<p>In 2019, the Meteor framework and Galaxy Hosting Products were purchased by\u00c2\u00a0Tiny Capital.\u00c2\u00a0and renamed Meteor Software.<\/p>\n<p>The above is a brief about MeteorJS. Watch this space for more updates on the latest trends in Technology.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MeteorJS, is a\u00c2\u00a0free and open-source\u00c2\u00a0isomorphic\u00c2\u00a0JavaScript\u00c2\u00a0web<\/p>\n","protected":false},"author":1,"featured_media":1770,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,499,7],"tags":[14,500,18],"class_list":["post-1768","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-meteor-js","category-techtrends","tag-javascript","tag-meteor-js","tag-technology"],"_links":{"self":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/comments?post=1768"}],"version-history":[{"count":1,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1768\/revisions"}],"predecessor-version":[{"id":1769,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1768\/revisions\/1769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media\/1770"}],"wp:attachment":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media?parent=1768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/categories?post=1768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/tags?post=1768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}